原碼、反碼、補碼、移碼


一、原碼

原碼就是符號位加上真值的絕對值, 即用第一位表示符號, 其余位表示值.

符號位:

0表示+

1表示-

8位二進制:

[+1]原 = 0000 0001

[-1]原 = 1000 0001

二、反碼

反碼的表示方法是:正數的反碼是其本身;負數的反碼是在其原碼的基礎上, 符號位不變,其余各個位取反

[+1] = [00000001]原 = [00000001]反

[-1] = [10000001]原 = [11111110]反

三、補碼

補碼的表示方法是:正數的補碼就是其本身;負數的補碼是在其原碼的基礎上, 符號位不變, 其余各位取反, 最后+1. 

負數的補碼等於反碼末位加1

X=-101011 , [X]原= 10101011 ,[X]反=11010100,[X]補=11010101

[+1] = [00000001]原 = [00000001]反 = [00000001]補

0的補碼是唯一的,如果機器字長為8那么[0]補=00000000

四、移碼

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

同一數值的移碼與補碼符號位相反,其它各位相同

 

原碼中0有兩種表示方式:[+0]原=0000000,[-0]原=1000000。
在反碼表示中,0也有兩種表示形式:[+0]反=0000000,[-0]反=11111111。
在補碼表示中,0有唯一的編碼:[+0]補=0000000,[-0]補=0000000。

[-1] = [10000001]原 = [11111110]反 = [11111111]補。

 

 

正數的原碼,補碼,反碼相同;

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

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

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

 


免責聲明!

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



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