一、原码
①最高位为符号位,0表示正数,1表示负数;
②除符号位其它数值部分,就是数值本身绝对值的二进制数;
③负数的原码是在其绝对值得的基础上,符号位变为1;
但是:
0的表示不唯一;加减运算方式不统一(同号数相减,异号数相加,要判断绝对值的大小,再取大的数的符号);需额外对符号位进行处理,故不利于硬件设计;特别当a<b时,实现a-b比较困难。
二、移码
什么是移码表示:将每一个数值加上一个偏置常数
三、补码(在计算机系统中数值一律由补码存储)
概念:在一个模运算系统中,一个数与它除以“模”后的余数等价。
时钟就是一个模12系统
在模12系统中:
10-4=10+8
-4=8(称8是-4对模12的补码,也有-4的模12补码等于8)
同样的有-3=9,-5=7.
结论:
①一个负数的补码等于模减该负数的绝对值
②对于某一确定的模,某数减去小于模的另一数,总可以用该数加上另一数负数的补码来代替。(10-4=10+8
从而实现了+和-的统一
对于正数原码、反码、补码不变;
对于负数,补码为其反码加1;
四、反码
①对于正数反码和其原码相同;
②对于负数符号位不变其它部分取反(1变为0,0变为1)最后+1,然后加负号
例如:
+15的反码是0000 1111
-15的反码是1111 0001