原码、反码、补码,计算机中负数的运算

原码:把整数换成二进制,就是原码。负数的最高位表示符号位为1,正数为0.

            eg:单字节的6原码为:0000 0110 ; -6的原码为1000 0110

反码:正数的反码就是其原码;负数的反码就是将原码中,除符号位以外,每位取反

            eg:单字节的6反码为:0000 0110 ; -6的反码为1111 1001

补码:正数的补码还是其原码;负数的反码+1就是补码。

            eg:单字节的6补码为:0000 0110 ; -6的补码为1111 1010

在运算中,减去一个数,等于加上它的相反数。在计算机中也是如此,6-5在计算机中的运算过程是,-5转换成补码就是其相反数:为1111 1011.然后在相加 0000 0110 + 1111 1011 = 0000 0001。

真值就是数值在计算机中的二进制表示。正数的真值是原码,负数的真值就是补码。计算机要做的只是把他们的真值拿来相加就ok了。总结一句话:计算机中存储的都是补码,正数原码=反码=补码(不变);负数补码=反码(原码取反)+1

猜你喜欢

转载自blog.csdn.net/Mr_xiao_1/article/details/80948616