原码 反码 补码 移码的关系(精简总结)

依然是为了避开那些繁琐复杂晦涩的概念与术语,为了确保能清晰的梳理它们之间的关系,现分为两部分说明

1. 机器数 是 正数  符号位为0

原码 = 反码 = 补码

eg:机器码长度为8,求X(6)10原码 反码 补码 移码

[X]原 = 00000000+110=00000110

[X]补=[X]反=[X]原 =00000110

[X]移=10000110

(绿色为符号位)

2.机器数 是 负数 符号位为1

反码 = 原码(符号位除外)各位取反而得到

 补码 = 原码(除符号位外)各位取反,并在未位1而得到

eg:机器码长度为8,求X(-6)10原码 反码 补码 移码

[X]原 = 10000000+110=10000110

[X]补=11111001 +1=11111010

[X]反=11111001

[X]移=01111010

(绿色为符号位)

=============================

移码 = 补码的符号位直接取反

=============================

应用示例

已知补码 求原码

原码 = 补码取反加1 (符号位除外)

[X]补=1101001  求[X]原。

[X]原 = 1010110+1 =1010111

总结:在换算过程中符号位始终保持不变(移码除外)。依然高端大气上档次!

 

如果有错误敬请指出,反正我也不一定改!

posted @ 2013-10-30 00:53  预见者  阅读(6510)  评论(5编辑  收藏  举报