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

原码、反码、补码和移码是二进制表示带符号数的方法。原码直接用最高位作为符号位,但直接计算可能导致错误。反码正数不变,负数除符号位外取反,但负零问题存在。补码是负数反码加1,适合计算机运算,简化硬件设计。移码主要用于阶码运算,符号位反转。在计算机中,数据主要以补码形式进行运算和存储,以简化运算规则并实现减法为加法的转换。
最低0.47元/天 解锁文章
1852

被折叠的 条评论
为什么被折叠?



