什么是原码、反码、补码?

我们知道十进制数111,可以表示为1*10^0+1*10^1+1*10^2,即可以等于1+10+100。

任何一个n位的十进制数都可以表示为m位的数字(1≤m≤n)与10的m-1次幂的乘积之和。

类似的一个二进制数10010,可以表示为0*2^0+1*2^1+0*2^2+0*2^3+1*2^4,即等于2+16=18(十进制值)。

 

计算机中表示数值有以下几种形式:

原码表示法(Signed magnitude representation) :

把最高位设置为0,表示正数或者+0,把最高位设置为1,表示负数或者-0,其余二进制位表示数值的绝对值大小。其中最高位被称为符号位。

反码表示法(Ones’ complement):最高位也是符号位,0表示正数,1表示负数,负数是将正数的二进制位取反。对于0有两种不同的表示法,分别是+0(0000 0000)、-0(1111 1111)。

补码表示法(Two’s complement):最高位也是符号位,0表示正数,1表示负数,负数是将正数的二进制位取反后加1。用补码表示法表示0,只有一种形式(0000 0000)。

 

 

 

 

 

 

       

发表评论