### 二进制与十进制的转换
#### 一、二进制转十进制
**二进制转十进制**的基本方法是“按权展开求和”,即根据二进制数每一位的权值(2的幂次方)计算出对应的十进制数值,然后将这些值相加得到最终的十进制数。
- **权值**:在二进制中,每一位的权值都是2的幂次方。例如,最右边的一位(最低位)的权值是2^0 = 1,紧挨着它的左边一位的权值是2^1 = 2,依此类推。
- **计算过程**:将二进制数中每一位上的数字(0或1)乘以该位的权值,然后将所有结果相加。
**示例**:将二进制数 `1011.01` 转换成十进制数。
\[
(1011.01)_2 = (1 \times 2^3 + 0 \times 2^2 + 1 \times 2^1 + 1 \times 2^0 + 0 \times 2^{-1} + 1 \times 2^{-2})_{10}
\]
\[
= (8 + 0 + 2 + 1 + 0 + 0.25)_{10} = (11.25)_{10}
\]
#### 二、十进制转二进制
**十进制转二进制**分为两部分:整数部分和小数部分。
- **整数部分**:“除以2取余,逆序输出”
- 将十进制整数不断除以2,并记录每次除法后的余数。
- 从最后一次除法得到的余数开始,逆序排列所有余数,形成最终的二进制数。
**示例**:将十进制数 `89` 转换成二进制数。
\[
89 \div 2 = 44 ... 1
\]
\[
44 \div 2 = 22 ... 0
\]
\[
22 \div 2 = 11 ... 0
\]
\[
11 \div 2 = 5 ... 1
\]
\[
5 \div 2 = 2 ... 1
\]
\[
2 \div 2 = 1 ... 0
\]
\[
1 \div 2 = 0 ... 1
\]
因此, `(89)_{10} = (1011001)_2`
- **小数部分**:“乘以2取整,顺序输出”
- 将十进制小数不断乘以2,并记录每次乘法后整数部分的值。
- 从第一次乘法得到的整数部分开始,顺序排列所有整数,形成最终的二进制小数部分。
**示例**:将十进制数 `0.625` 转换成二进制数。
\[
0.625 \times 2 = 1.25
\]
\[
0.25 \times 2 = 0.5
\]
\[
0.5 \times 2 = 1.0
\]
因此, `(0.625)_{10} = (0.101)_2`
#### 三、二进制代码与ASCII码
在计算机科学中,除了数的表示外,还需要表示字母、符号等非数值信息。为此,通常采用二进制代码来表示。
- **ASCII码**:用7位二进制数来表示字母和各种常用字符。
- **汉字编码**:对于汉字信息的表示,中国制定了汉字编码标准,使用16位二进制代码来表示一个汉字,以适应汉字数量较多的需求。
### 结论
通过以上介绍可以看出,二进制与十进制之间的转换是计算机科学中非常基础且重要的概念。掌握这两种数制之间的转换方法对于理解和学习计算机内部工作原理有着不可替代的作用。此外,了解二进制代码的应用,如ASCII码和汉字编码,对于处理非数值信息也非常关键。