原碼 反碼 補碼和移碼

2021-08-01 19:16:58 字數 929 閱讀 7959

原碼:

如果機器字長為n,那麼乙個數的原碼就是用乙個n位的二進位制數,其中最高位為符號位:正數為0,負數為1。剩下的n-1位表示概數的絕對值。

例如: x=+101011 , [x]原= 00101011   

x=-101011 , [x]原= 10101011 

位數不夠的用0補全。

ps:正數的原、反、補碼都一樣

:0的原碼跟反碼都有兩個,因為這裡0被分為+0和-0。

反碼:

知道了什麼是原碼,那反碼就更是張飛吃豆芽——小菜一碟了。知道了原碼,那麼你只需要具備區分0跟1的能力就可以輕鬆求出反碼,為什麼呢?因為反碼就是在原碼的基礎上,符號位不變其他位按位取反(就是0變1,1變0)就可以了。

例如:x=-101011 , [x]原= 10101011 ,[x]反=11010100

補碼:

正數:

正數的補碼和原碼一樣,不用變換。

負數:負數的補碼就是在原碼的基礎上,符號位不變,其餘位取反,然後末位加1。

已知負數的補碼求原碼:可以按照補碼的補碼等於原碼的操作去求。就是說,補碼的基礎上,符號位不變,其餘位取反,末位加1。

補碼也非常的簡單就是在反碼的基礎上按照正常的加法運算加1。

例如:x=-101011 , [x]原= 10

101011

,[x]反=11010100,[x]補=11010101

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

移碼:

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

例如:x=-101011 , [x]原= 10

101011

,[x]反=11010100,[x]補=11010101,[x]移=01010101

原碼,反碼,補碼和移碼

注意 正數的原 反 補碼都一樣。0的原碼跟反碼都有兩個,因為這裡0被分為 0和 0。如果機器字長為n,那麼乙個數的原碼就是乙個n位的二進位制數有符號數,其中最高位為符號位 正數為0,負數為1。剩下的n 1位為數值位,表示真值的絕對值。凡不足n 1位的,小數在最低位右邊加零 整數則在最高位左邊加零來補...

原碼 反碼 補碼和移碼

數值型資料的表示方法 1.1 進製計數制 數制的基與權 在任一數制中,每乙個數上允許使用的計數符號的個數被稱作該數制的基數。每一位都對應乙個表示該位在數碼中的位置的值,這個值就被稱為數字的權值w。常用的幾種進製 1 2進製 0,1 2 8進製 0,1,2,3,4,5,6,7 3 17進製 0,1,2...

原碼 反碼 補碼和移碼

各種數值在計算機中表示的形式為機器數,其特點是採用二進位制計數制,數的符號用0或1表示,小數點則隱含,表示不佔位置,這就是機器數的原碼。為了便於運算,帶符號的機器數可採用原碼 反碼 補碼和移碼等不同的編碼方法,機器數的這些編碼方法稱為碼制。在這種表示方法中,最高為是符號位,0表示正號,1表示負號。原...