依然是為了避開那些繁瑣復雜晦澀的概念與術語,為了確保能清晰的梳理它們之間的關系,現分為兩部分說明
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
總結:在換算過程中符號位始終保持不變(移碼除外)。依然高端大氣上檔次!
如果有錯誤敬請指出,反正我也不一定改!