补码和反码,原码的差别:
补码的0只有一种表现形式,补码能比反码和原码多表示一位最小负数。
例如:机器位数为8位,一位符号位,原码和反码的表示范围为-2的7次方-1到 2的7次方-1,而补码的表示范围为-2的7次方到2的7次方-1(不对称)。
原因在于:
补码的符号位是参与运算的,原码和反码的符号位不参与运算。
定点整数:
x的补码=10011;x的真值等于11+12+04+08+(-1)16=-13
转换为原码验证一下,x的原码=11101,即-(11+02+14+1*8)=-13
所以,在定点整数中,补码转换为真值即可将符号位带入运算,但是权值要根据符号位的具体表示含义做出更改。
定点小数:
x的补码为1.0011;x的真值等于-1+00.5+00.25+10.125+10.0625=-0.8125
转换为原码验证一下,x的原码=1.1101,即-(0.5+0.25+0.0625)=-0.8125
所以,在定点小数中,补码转换为真值也可将符号位带入运算,此时符号位的权值仍然是符号位的具体表示含义。