1.原码
将最高位用作符号位(0表示正数,1表示负数),其余各位代表数值本身的绝对值的表示形式。
例如,假设用8位表示一个数,则+10的原码是00001010,-10的原码是10001010。
直接使用原码在计算时会有麻烦,例如,(1)10+(-1)10=0。如果直接使用原码,则
(00000001)2+(10000001)2=(10000010)2
这样计算的结果是-2也就是说,使用原码直接参与计算可能会出现错误的结果。所以,原码的符号位不能直接参与计算,必须和其他位分开,这样会增加硬件的开销和复杂性。
2.反码
正数的反码与原码相同。负数的反码符号位为1,其余各位为该数绝对值的原码按位取反。例如,-11的反码是11110100。
同样,对上面的加法,使用反码的结果是: