二進位制 真值 原碼 反碼 補碼

2021-07-27 07:54:42 字數 1005 閱讀 1303

機器數:

乙個數在計算機中二進位制的表示形式叫機器數,機器數是帶符號的 。計算機使用最高位來表示符號位 負數為1 正數為0.假如計算機的字長為8位 那麼對於十進位制3的機器數表示為0000 0011  ,而對於-3的機器數表示為1000 0011。

真值:  

由於機器數是帶符號的所以機器數的形式值就不等於實際的值 ,即最高位是不參與運算的。真值就是它實際的值(可能理解錯了 有大神看到有不對的地方請指點下  謝謝)

原碼:百科裡的解釋是:原碼表示法在數值前面增加了一位符號位(即最高位為符號位):

正數該位為0,負數該位為1(0有兩種表示:+0和-0),其餘位表         示數值的大小。所以8位二進位制的取值範圍就是:[1111 1111,0111 1111]即[-127,127],原碼是人腦最容易理解和計算的表示方式

反碼:先上一段百科的解釋---:」在計算機內,定點數有3種表示法:原碼、反碼和補碼。反碼是數值儲存的一種,但是由於補碼更能有效表現數字在計算機        中  的形式,所以多數計算機一般都不採用反碼表示數。

正數的反碼是其本身,負數的反碼是符號位不變 其它位取反。[+1]=[0000 0001]原= [0000 0001]反,[-1]=[1000 0001]原=[1111 1110]         反。可見如果乙個反碼表示的是負數,人腦無法直觀的看出來它的數值,通常要將其轉換成原碼再計算

補碼:

百科:在計算機系統中,數值一律用補碼來表示和儲存。原因在於,使用補碼,可以將符號位和數值域統一處理;同時,加法和減法也可以統一            處理。此外,補碼與原碼相互轉換,其運算過程是相同的,不需要額外的硬體電路

正數的補碼與其原碼相同 ,負數二進位制補碼 先求與之對應的正數二進位制數 然後所有位取反加1 不夠位數時左邊加1

例如,[+1]=[0000 0001]原=[0000 0001]反=[0000 0001]補,[-1]=[1000 0001]原=[1111 1110]反=[1111 1111]補,對於負數,補碼表示方式也是人腦無法直**出其數值的,通常也需要轉換成原碼再計算其數值

二進位制原碼 反碼 補碼詳解

原碼 原碼是指將最高位作為符號位 0表示正,1表示負 其它數字位代表數值本身的絕對值的數字表示方式。例如 數字6 在計算機中原碼表示為 0 000 0110 其中,第乙個數字0是符號位,0表示正數,0 000110是數字6的二進位制資料表示。數字 6 在計算機中原碼表示為 1 000 0110 以上...

java 二進位制原碼,反碼,補碼

強制型別轉換,用到原反補碼 就是二進位制定點表示法,即最高位為符號位,0 表示正,1 表示負,其餘位表示數值的大小。通過乙個位元組,也就是8個二進位制位表示 7和 7 0 符號位 0000111 1 符號位 0000111 正數的反碼與其原碼相同 負數的反碼是對其原碼逐位取反,但符號位除外。正數的補...

二進位制的原碼 反碼 補碼

如何表示二進位制數的正負呢 通常採用的方法是在二進位制數的前面加一位符號位,符號位為0表示這個數是正數,符號位位1表示這個數字負數,這種形式的數就稱為原碼。為什麼需要二進位制補碼 在做減法時,如果兩個數時用原碼表示的,則首先需要比較兩數絕對值的大小,然後以絕對值大的乙個數作為被減數 絕對值小的乙個作...