原碼,反碼,補碼,移碼

2021-08-24 19:48:43 字數 625 閱讀 4232

移碼(又叫增碼)是符號位取反的補碼,(先將符號位取反,再取補碼,意思就是正數只將+變為1,負數將-變為0,再取補)

: x=+1011 [x]移=11011 符號位「1」表示正號

x=-1011 [x]移=00101 符號位「0」表示負號

一般用做浮點數的階碼,引入的目的是為了保證浮點數的機器零為全0。

一、原碼

求原碼:x≥0,則符號位為0,其餘照抄;

x≤0,則符號位為1,其餘照抄。

【例1】x=+1001001 [x]原 = 01001001

【例2】x=-1001001 [x]原 = 11001001

二、反碼

求反碼:若x≥0,符號位為0,其餘照抄;

若x≤0,符號位為1,其餘按位取反。

【例3】x=+1001001 [x]反 = 01001001

【例4】x=-1001001 [x]反 = 10110110

三、補碼

求補碼:若x≥0,符號位為0,其餘照抄;

若x≤0,符號位為1,其餘取反後,最低位加1。

【例5】x=+1001001 [x]補 = 01001001

【例6】x=-1001001 [x]補 = 10110111

原碼,補碼,反碼,移碼

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

原碼 反碼 補碼 移碼

如果機器字長為n,那麼乙個數的原碼就是用乙個n位的二進位制數,其中最高位為符號位 正數為0,負數為1。剩下的n 1位表示概數的絕對值。例如 x 101011 x 原 00101011 x 101011 x 原 10101011 位數不夠的用0補全。ps 正數的原 反 補碼都一樣 0的原碼跟反碼都有兩...

原碼 反碼 補碼 移碼

本人是初學者一枚,寫下筆記分享自己的一些見解,若有錯誤之處希望各位大神多多海涵,並請指出理解有誤的地方,謝謝 先確定用多少位元組儲存資料,假設這裡是1bytes 8bits,再把資料轉換為2進製的表達形式,把2進製的首位 最高位 最左的那一位作為符號位,0代表正數 1代表負數 十進位制數值中的 1轉...