理解的源码、反码、补码
在计算机中,一个数由二进制表示,该二进制数称为该数的机器数,机器数是带符号的,机器数的最高位存放符号,正数为0,负数为1。
区分机器数与真值:机器数的第一位是符号位,故机器数的形式值不代表真正的值。
原码:符号位加真值的绝对值为一个数的原码(1=0000 0001,-1=1000 0001,最高位为符号位),计算机内部不使用原码表示一个数,而是使用补码。
正数:原码、反码、补码,三码合一。(1=0000 0001—>三码合一)。
负数:反码是在其原码的基础上,符号位不变,其余按位取反。(-1的反码1111 1110)。
补码是在反码的基础上加1;或者负数绝对值的原码(0000 0001)按位取反(1111 1110)加1(1111 1111),
通过补码求原码正好为逆向过程,即负数补码减1按位取反得到的永远是负数绝对值的原码(-1的补码1111 1111),
补码的补码即原码。
上述中的1和-1的补码才是真正表示他们的机器数,可见,补码的形式值并不一定等于其真实值。

浙公网安备 33010602011771号