計算機中的原碼 反碼和補碼

2021-10-23 03:24:53 字數 697 閱讀 4668

原碼和反碼都很簡單,原碼是數字的二進位制表示,反碼是數字二進位制表示後每一位都取反。

重點說補碼:

為什麼要用補碼?

假設當前時針指向8點,而準確時間是6點,調整時間可有以下兩種撥法:一種是倒撥2小時,即8-2=6;另一種是順撥10小時,8+10=12+6=6,即8-2=8+10=8+(12-2)(mod 12).在12為模的系統裡,加10和減2效果是一樣的,因此凡是減2運算,都可以用加10來代替。在計算機運算中減法問題也可以化成加法問題,只需把減數用相應的補數表示就可以了。把補數用到計算機對數的處理上,就是補碼。1

簡單理解為可以把兩個數的減法運算改為補碼加法運算。

補碼的求法,先看例子:

例:求-5的補碼。

-5對應正數5(00000101)→所有位取反(11111010)→加1(11111011)

所以-5的補碼是11111011。

計算機中,表示有符號數時,在二進位制的首位用0表示正數,用1則表示負數。求負整數的補碼,將其原碼除符號位外的所有位取反(0變1,1變0,符號位為1不變)後加1 。

對於不同位數的系統:

同乙個數字在不同位數的補碼表示形式中是不同的。比如-15的補碼,在8位二進位制中是11110001,然而在16位二進位制補碼表示中,就是1111111111110001。

0的補碼唯一,8位系統中為00000000,16位系統中為0000000000000000

↩︎

計算機中的原碼 反碼和補碼

計算機中的原碼 反碼和補碼 看到這個標題,很多人有話要說了,切!這個東西每一本計算機基礎知識的書中都有介紹的,你還拿出來show什麼嘛!我的原則是你需要就來看一看,懂就不要去理會,倒也不必諷刺兩句,我相信總有需要它的人。當初我看書是沒看明白的,在網上查了好多資料才有所悟。前幾天跟老婆講原碼 反碼和補...

計算機中的原碼 補碼和反碼

數在計算機中是以二進位制形式表示的。數分為有符號數和無符號數。原碼 反碼 補碼都是有符號定點數的表示方法。乙個有符號定點數的最高位為符號位,0是正,1是副。以下都以8位整數為例,原碼就是這個數本身的二進位制形式。例如0000001 就是 1 1000001 就是 1 正數的反碼和補碼都是和原碼相同。...

計算機中的原碼 反碼和補碼

大家都知道資料在計算機中都是按位元組來儲存了,1個位元組等於8位 1byte 8bit 而計算機只能識別0和1這兩個數,所以根據排列,1個位元組能代表256種不同的資訊,即2 8 0和1兩種可能,8位排列 比如定義乙個位元組大小的無符號整數 unsigned char 那麼它能表示的是0 255 0...