原碼 反碼 補碼 移碼

2022-08-25 11:03:22 字數 940 閱讀 2321

一、原碼

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

符號位:

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

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

原碼,補碼,反碼,移碼

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

原碼,反碼,補碼,移碼

移碼 又叫增碼 是符號位取反的補碼,先將符號位取反,再取補碼,意思就是正數只將 變為1,負數將 變為0,再取補 x 1011 x 移 11011 符號位 1 表示正號 x 1011 x 移 00101 符號位 0 表示負號 一般用做浮點數的階碼,引入的目的是為了保證浮點數的機器零為全0。一 原碼 求...

原碼 反碼 補碼 移碼

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