计算机内部的数值存储

计算机中的数值存储 机器数和真值 原码、反码、补码 原码有什么问题(1+(-1)=-2) 反码有什么问题(1+(-1)=-0) 补码运算 补码表示的溢出 计算机中的数值存储 机器数和真值 一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1. 比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00000011。如果是 -3 ,就是 10000011 。那么,这里的 00000011 和 10000011 就是机器数。 原码、反码、补码 原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值。 反码的表示方法是:正数的反码是其本身;的反码是在其原码的基础上, 符号位不变,其余各个位取反。 补码的表示方法是:正数的补码就是其本身;的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)。 原码有什么问题(1+(-1)=-2) 如果使用原码进行计算: 1 - 1 = 1 + (-1) = [00000001]原 + [10000001]原 = [10000010]原 = -2 问题:计算错误 反码有什么问题(1+(-1)=-0) 如果使用反码进行计算: 1 - 1 = 1 + (-1) = [0000 0001]原 + [1000 0001]原 = [0000 0001]反 + [1111 1110]反 = [1111 1111]反 = [1000 0000]原 = -0 问题:0带符号是没有任何意义的,而且会有[0000 0000]原和[1000 0000]原两个编码表示0。 [Read More]