原碼 反碼 補碼 移碼之間的轉換

2022-04-29 13:48:12 字數 658 閱讀 7301

符號位即八位字元的第一位,1為負,0為正。
原碼:取絕對值

反碼:符號位0表示正,1表示負,正數的反碼等於原碼。負數的反碼等於原碼按位數取反,(絕對值按位求反)

步驟:先將這個負數化為原碼,再根據原碼取反。比如該負數原碼是:0 0000001,那麼它取反就是0 1111110

補碼:符號位0表示正,1表示負,正數的補碼等於原碼。負數的補碼等於反碼末位加1,

步驟:先將這個負數化為原碼再化為反碼,末位加1。比如該負數的反碼是1 1111110,那麼它末位加1就是1 1111111

移碼:等於補碼的符號(第一位數字)位取反。

步驟:先把這個數化為補碼,然後再根據補碼的第一位數字取反即可。(移碼和補碼的關係:同一數值的移碼與補碼符號位相反,其它各位相同。)

總結:正數的原碼,補碼,反碼相同;

負數的反碼:原碼的數值取反;

負數的補碼:原碼轉換成反碼,反碼末位加1

負數的移碼:與補碼的符號位(第一位數字)相反

已知補碼求原碼:

最高位如果是1的話(負數),那麼除了最高位之外的取反,然後加1得原碼。

最高位如果是0的話,不變,正數的補碼就是他的原碼。

r進製轉化為十進位制,用乘法。(*r多少次方)

十進位制轉化為r進製,用取餘法。(餘數從下往上寫)

鏈結 

原碼 反碼 補碼 移碼之間的轉換

原碼 取絕對值 反碼 符號位0表示正,1表示負,正數的反碼等於原碼。負數的反碼等於原碼按位數取反,絕對值按位求反 步驟 先將這個負數化為原碼,再根據原碼取反。比如該負數原碼是 0 0000001,那麼它取反就是0 1111110 補碼 符號位0表示正,1表示負,正數的補碼等於原碼。負數的補碼等於反碼...

原碼 補碼 反碼 移碼之間的換算

原碼 原碼表示法在數值前面增加了一位符號位 即最高位為符號位 正數該位為0,負數該位為1 0有兩種表示 0和 0 其餘位表示數值的大小。如 45 原 00101101 45 原 10101101 反碼 正數的反碼與其原碼相同 負數的反碼是對其原碼逐位取反,但符號位除外 如 45 反 00101101...

原碼,補碼,反碼,移碼

為什麼有這些碼 定義機器字長為n,若數值x是純整數 若數值x是純小數,對純小數的原碼計算是先將其轉換為二進位制 必須的 例 若機器字長為8,則 1 原 0 0000001 1 原 1 0000001 7 原 0 0000111 127 0 1111111 127 原 1 1111111 7 原 1 ...