計算機系統 補碼,原碼及反碼

2022-07-22 16:54:20 字數 1340 閱讀 9552

假設有乙個w位的無符號整數,我們可以將位向量寫成[xw-1 , xw-2 , … , x2 , x1 , x0]。其中每個xi都取值為0或1,我們用乙個函式b2uw(binary to unsigned,長度為w)來表示:

函式b2u將乙個長度為w的0、1串對映到非負整數:

對於乙個無符號編碼的數,由 w 位的二進位制序列構成,那麼它的最小值,即所有位都為 0 ,用位向量表示即:000......000。

uminw = 0

最大值即所有位都為 1,即:111......111

umaxw = 2w - 1

對於許多應用,我們還希望表示負數值,最常見的有符號數的計算機表示方式就是補碼,在補碼中,最高有效位為符號位

我們用b2tw來(binary to two's-conplement,長度為w)來表示:

當最高位為1,其餘為全部是 0 的時候,即 1000......000,表示補碼格式的最小值:

tminw = -2w-1

當最高位為 0,其餘為全部是 1 時,即 0111......111,表示補碼格式的最大值:

tmaxw = 2w-1-1

反碼:除了最高有效位的權是-(2w-1-1),而不是-2w-1其餘的和補碼表示方式一樣

原碼:最高有效位是符號位,用來確定剩下的位是取負還是正

無符號數補碼 = 原碼取反 + 1

有符號數補碼 = 除符號位原碼取反 + 1

對於負整數,原碼和補碼互相轉換的簡便方法:從數的右邊往左開始數,遇到「0」不理它,直到遇到第乙個「1」為止,以後的每一位數取反即是它的原碼或補碼,符號位不變,還是「1」(補碼的補碼是原碼)。

計算機系統 補碼,原碼及反碼

假設有乙個w位的無符號整數,我們可以將位向量寫成 xw 1 xw 2 x2 x1 x0 其中每個xi都取值為0或1,我們用乙個函式b2uw binary to unsigned,長度為w 來表示 函式b2u將乙個長度為w的0 1串對映到非負整數 對於乙個無符號編碼的數,由 w 位的二進位制序列構成,...

計算機 原碼 反碼 補碼

在計算機中,用補碼來表示數字,因為 1 這樣可以比較方便的表示0 保證0作為正數或者負數補碼都是00000000 2 計算時用補碼直接加減就是最終數值 符號位參與運算 1.原碼 原碼就是符號位加上真值的絕對值,即用第一位表示符號,其餘位表示值.比如如果是8位二進位制 1 原 0000 0001 1 ...

計算機原碼, 反碼, 補碼

乙個數在計算機中的二進位制表示形式,叫做這個數的機器數。機器數是帶符號的,在計算機用乙個數的最高位存放符號,正數為0,負數為1.因為第一位是符號位,所以機器數的形式值就不等於真正的數值。例如上面的有符號數 10000011,其最高位1代表負,其真正數值是 3 而不是形式值131 10000011轉換...