理解的源码、反码、补码

在计算机中,一个数由二进制表示,该二进制数称为该数的机器数,机器数是带符号的,机器数的最高位存放符号,正数为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的补码才是真正表示他们的机器数,可见,补码的形式值并不一定等于其真实值。
posted @ 2021-01-15 18:14  FelixBlog  阅读(145)  评论(0)    收藏  举报