注意:以下数字均以8位二进制数字表示:
原始代码的最高位(左端)表示编码位,0表示正数,1表示负数。例:
的源代码为0000 0001-1的源代码为1000 0001反转正反转代码与源代码匹配。
负数的反码是对原始码按位取反,只是最高位(符号位)不变。
例:
1的反码为0000 0001-1的反码为1111 1110补码的正补码与原码一致。
负数的补数是该数的反码加上1。
计算机的数字运算都是基于补数的。
单字节(8位)运算的幅度为256=2^8。 负数的补数是模减去该数的绝对值。
例:
的补数为0000 0001-1的补数在1111 1111补数的优势计算机内部用原码表示数,在进行加法和减法运算时,需要转换为两个绝对值的加法和减法运算。 计算机既要实现加法器,也要实现减法器,成本有点大。
化减为加用生活中的例子来说明这个问题。 时钟的一周是360度,当然也存在365度,但其实和360度一样。 出于相同的原因,-30度意味着逆时针旋转30度,与顺时针旋转330度相同。
其中数字360表示时钟的一周,在计算机中称为模。 这将实现化减为加,本质上是不改变结果地实现溢出的部分舍去。
实例15=原始代码: 0000 1111=反向代码: 0000 1111=辅助代码:00001111(-5 ) ) ) ) ) ) ) ) ) )。=原码: 1000 0101=反码: 1111 1010=补码:111011————————————。
3359 zhidao.Baidu.com/question/40122353.html