第二章:信息的表示和处理
2.1 数制
十进制(DEC) | 十六进制(HEX) | 八进制(OCT) | 二进制(BIN) |
---|---|---|---|
0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 |
2 | 2 | 2 | 10 |
3 | 3 | 3 | 11 |
4 | 4 | 4 | 100 |
5 | 5 | 5 | 101 |
6 | 6 | 6 | 110 |
7 | 7 | 7 | 111 |
8 | 8 | 10 | 1000 |
9 | 9 | 11 | 1001 |
10 | a | 12 | 1010 |
11 | b | 13 | 1011 |
12 | c | 14 | 1100 |
13 | d | 15 | 1101 |
14 | e | 16 | 1110 |
15 | f | 17 | 1111 |
其他进制转换为十进制
根据进制的权值,如一个 位的 进制数,从右往左数第一位是 位,那么其十进制数字表示是
十进制转其他进制
可以使用除法,例如转换为 进制,每一次除以 ,将余数写在一边,将除数写在下面继续除,直到除数为 ,这个时候将余数从下往上写出来就是这个数。
例如,将 转换为二进制数:
得到的结果是
二进制与八进制、十六进制的转换
从右边数,每 个二进制数对应一个十六进制数,每 个二进制数对应一个八进制数,不足的可以补 。
text
0x a 4 8 f 0 7
0b 1010 0100 1000 1111 0000 0111
text
0b 101 001 001 000 111 100 000 111
0o 5 1 1 0 7 4 0 7
2.2 原码、反码和补码
原码
最高位是符号位( 表示正, 表示负),其余的二进制位表示这个数的绝对值。
整数的原码与其值的关系:
反码
对于正数,反码与原码一致;对于负数,反码的数值部分是原码的二进制求反。
整数的反码与其值的关系:
补码
对于正数,补码与原码一致,对于负数,数值求反并加一。
整数的补码与其值的关系:
2.3 其他二进制表示
格雷码 相邻两位的变化只有一位。余三码 相当于 8421BCD
码加三。
十进制 | 8421BCD | 格雷码 | 余三码 | 2421BCD |
---|---|---|---|---|
0 | 0000 | 0000 | 0011 | 0000 |
1 | 0001 | 0001 | 0100 | 0001 |
2 | 0010 | 0011 | 0101 | 0010 |
3 | 0011 | 0010 | 0110 | 0011 |
4 | 0100 | 0110 | 0111 | 0100 |
5 | 0101 | 0111 | 1000 | 1011 |
6 | 0110 | 0101 | 1001 | 1100 |
7 | 0111 | 0100 | 1010 | 1101 |
8 | 1000 | 1100 | 1011 | 1110 |
9 | 1001 | 1101 | 1100 | 1111 |
10 | 1010 | 1111 | ||
11 | 1011 | 1110 | ||
12 | 1100 | 1010 | ||
13 | 1101 | 1011 | ||
14 | 1110 | 1001 | ||
15 | 1111 | 1000 |
格雷码转自然二进制
自然二进制 与格雷码 ,那么
其中, 是异或运算
自然二进制转格雷码
余三码与自然二进制相互转换
由余三码定义可以得知,余三码的值减去三得到自然二进制。
2.4 浮点数表示
2.4.1 二进制小数
首先我们先看十进制的小数含义,对于下面的十进制数
其数值等于
这对于二进制也是一样的,对于一个二进制数
其数值等于
我们知道,对于有符号(signed
类型)的数字,第一位使用符号位,对于浮点数也是这样。
2.4.2 IEEE 浮点数表示
32 位浮点数通常遵循 IEEE 754 标准,这个 IEEE 754 可视化网站 可以帮助你理解 IEEE 754。
设符号位为 ,尾数为 ,阶码为 ,那么这个浮点数可以表示为
其中 其中 是绿色区域所表示的无符号数字,偏置 为 。也就是说对于 32 位的浮点数,,对于 64 位的浮点数,。
对于尾数,当为规格化时,隐含了一个 的表示。即对于 64 位浮点数,各个比特位是 。
浮点数的分类:
- 对于规格化的浮点数,
- 对于非规格化的浮点数,
- 无穷大表示为
- 不是一个数(
NaN
)表示为
对于下面几点特殊情况:
- 当 且 时,没有隐含的 ,表示
- 当 且 时,没有隐含的 ,表示
- 对于 时, 表示
- 对于 时, 表示