原碼、反碼、補碼的簡單轉換


1、正數的原碼、反碼、補碼是一樣的

如+1011111(95)的原碼、反碼、補碼為:

原碼 0101 1111
反碼 0101 1111
補碼 0101 1111

2、負數的原碼、反碼、補碼轉換

以-1011111(-95)的原碼、補碼、反碼的轉換為例:

(1)負數原碼、反碼轉換

符號位不變,數值位按位取反

原碼轉反碼

原碼 1101 1111
反碼 1010 0000 //符號位不變,數值位按位取反

反碼轉原碼

反碼 1010 0000
原碼 1101 1111 //符號位不變,數值位按位取反

(2)負數原碼、補碼轉換

符號位不變,數值位按位取反,末位+1

原碼轉補碼

原碼 1101 1111
反碼 1010 0000 //符號位不變,數值位按位取反
補碼 1010 0001 //末位+1

快速求法為:

符號位不變,從右往左找第一個1,這個1左邊的取反,右邊的不變

補碼轉原碼

補碼 1010 0001 
1101 1110      //符號位不變,數值位按位取反為
原碼 1101 1111 //末位+1

(3)負數反碼、補碼轉換

反碼轉補碼,末位+1;補碼轉反碼,末位-1

反碼轉補碼

反碼 1010 0000 
補碼 1010 0001 //末位+1

補碼轉反碼

補碼 1010 0001
反碼 1010 0000 //末位-1

3、總結:

正數的原碼、補碼、反碼都一樣;

負數的原碼、反碼轉換:符號位不變,數值位按位取反;

負數的原碼、補碼轉換:符號位不變,數值位按位取反,末位+1,【快速求法為:符號位不變,從右往左找第一個1,這個1左邊的取反,右邊的不變】;

負數的反碼、補碼轉換:反碼轉補碼,末位+1;補碼轉反碼,末位-1。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM