计算机中数字的表示
数的表示 对于一个数字: 真值:书写表示的数值。 机器码:机器中实际的编码。 例如: 对于数字 10. 我们说10, 就是该数的真值。而 00001010 表示机器中以8位二进制表示的10 原码 最高位为符号位, 1 为 负,0为正。 其余数位则为真值的二进制表示。 实际上在计算机中不常见。 反码 就是在原码的基础上,对所有数位进行取反。 补码 补码的目的是为了在加减法计算中,可以通过相同的电路进行计算。 从原码转补码的方法有两种: 正数不变,负数除了符号以外都取反+1。 如果是正数,当然不用改变。如果是负数,则符号位不变,最低的1不变,中间的数位取反。 例如要对数$11001010$(原码)转换为补码。 若采用方法1 是负数,则除了第一位以外全部取反,得到$10110101$ $+1$得到 $10110110$ 采用方法2: 是负数,则第一位和最后一个1不变,中间的取反,得到$10110110$ 将补码转换为原码同样可以采用和上述一致的操作。 (换言之,补码是成对出现的,二者是互补的关系) 移码 也叫增码或偏置码。 从形式上将,移码是在补码基础上, 符号位与补码相反,其余部分相同。 移码是 IEEE 754 标准浮点数的阶码表示方法,其原因可以见后文。 例子 下面为几个上述机器码的实例, 都使用8位二进制数表示, 首位为符号位。 真值 原码 反码 补码 移码 10 00001010 11110101 00001010 10001010 -10 10001010 01110101 11110110 01110110 -128 无法表示 无法表示 10000000 00000000 -127 11111111 00000000 10000001 00000001 数据格式 存储一个数据需要考虑以下因素:...