1. 程式人生 > >如何理解計算機組成中——真值,原碼,補碼,反碼,移碼之間的關係

如何理解計算機組成中——真值,原碼,補碼,反碼,移碼之間的關係

關於原碼、反碼、補碼和移碼的定義如下

1:原碼:

 2:補碼

 

 3:反碼

 

 4:移碼

 

上述公式很複雜,因此,可以總結出一些常見的規律:

原碼

如果機器字長為n,那麼一個數的原碼就是用一個n位的二進位制數,其中最高位為符號位:正數為0,負數為1。剩下的n-1位表示概數的絕對值。 例如: X=+101011 , [X]原= 0, 0101011    X=-101011 , [X]原= 1,0101011  位數不夠的用0補全。

 反碼

知道了什麼是原碼,反碼就是在原碼的基礎上,符號位不變其他位按位取反(就是0變1,1變0)就可以了。

 例如:X=-101011 , [X]原= 1,0101011 ,[X]反=1,1010100

補碼

在反碼的基礎上按照正常的加法運算加1。

或者原碼除符號位外每位取反末位加

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

 移碼

移碼最簡單了,不管正負數,只要將其補碼的符號位取反即可。

例如:X=-101011 , [X]原= 10101011 ,[X]反=11010100,[X]補=11010101,[X]移=01010101