原码
原码的表示注意:
1、0的表示不唯一,整数0000,复数1000,故不利于程序员编程
2、加减运算方法不统一,不能像补码那样减法用加法来实现。
3、需要额外对符号位进行处理,故不利于硬件设计
4、特别当a<b时,实现a-b比较困难
从50年代开始,整数都采用补码来表示,但浮点数的尾数用原码定点小数表示
移码
移码表示
补码
补码-模运算补码的运算:模-另一个数的绝对值
一个数 - 另一个数 = 一个数 + (另一个数的补码)
二进制补码的计算例如:一个时钟,模时12。此时时8点,调到12点有两种做法。
1、逆时针调:8-8=0; 这个可以看成是:8+(12-8)=12%12=0;
2、顺时针调:8+4=12;
总结:一个负数的补码等于各位取反,末位加一
-8~+7的补码求真值的补码
结论:正数的补码是其本身,负数的补码是其正数补码各位取反,末尾加一。
负数的补码简便方法:从右向左遇到第一个1的前面各位取反
真值的计算
真值计算
结论:计算真值,以二进制求十进制的真值
一个二进制数,首先看第一位数是0还是1,如果是0,则这个数是正数,如果是1,则这个数是负数。
一个正数的真值只是把符号位改为+其他数值部分相同不修改,求值。
一个负数的真值把符号位改为- 其他数值各位取反,末尾加1,再求值
如:补码“0101 0110”的真值:
既是计算 +101 0110的值=64+16+4+2=86
补码“1101 0110”的真值:
既是 -010 1010的值 = - (32+8+2)
网友评论