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

http://www.cnblogs.com/seer/p/3395888.html

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

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

总结:在换算过程中符号位始终保持不变(移码除外)。

你可能感兴趣的:(总结)