原碼 反碼與補碼,怎麼計算?

2021-10-07 22:20:44 字數 1025 閱讀 9486

原碼、反碼、補碼的定義是什麼?

計算機用0和1來表示乙個整數,而整數有正負之分。

原碼:  最高位為符號位,正數為0,負數為1.非符號位為二進位制的絕對值表示。

反碼:正數反碼與原碼一致,負數反碼就是原碼按位取反,除去符號位不變,保持為1。

補碼, 正數補碼與原碼一致,負數補碼是反碼+1,即補碼=反碼+1. 也可以計算為:以原碼進行操作,符號位不變,保持為1,其餘位取反,直到碰到最後乙個1為止,那個1及以後的數字不再取反。又:原碼的第乙個1和最後乙個1之間的數字,全部取反。

舉例說明:16位機,十進位制,+6,-4,三碼分別如何用hex表示?

原碼反碼補碼6

0x0006

0x0006

0x0006

-60x8006

0xfff9

0xfffa

40x0004

0x0004

0x0004

-40x8004

0xfffb

0xfffc

正數三碼一致。jsj數字運算均基於補碼。

負數補碼為其模減去該數的絕對值。

舉例,對於16位機,0xfffc是多少?可能是有符號的 -4,也可能就是無符號的65532 !

65532+4=65536=2^16

來個更簡易負數補碼計算方法:

abs(-m) < 2^n,補碼表示為: 2^n-m,前頭根據字長自行補足f,n =[4,8,12,16...32],步長=4

number

abs字長816

3264-99

0xf7

0xfff7

0xfffffff7

自加f-18

0x12

0xee

0xffee

0xffffffee

自加f-650

0x28a

0xfd76

0xfffffd76

自加f--73142

0x11db6

0xfffee24a

自加f

原碼 反碼與補碼

在計算機內,定點數有3種表示法 原碼 反碼和 補碼。所謂原碼就是 二進位制定點表示法,即最高位為符號位,0 表示正,1 表示負,其餘位表示數值的大小。反碼表示法規定 正數的反碼與其原碼相同 負數的反碼是對其原碼逐位取反,但符號位除外。補碼表示法規定 正數的補碼與其原碼相同 負數的補碼是在其反碼的末位...

補碼 原碼與反碼

古人說得好 溫故而知新 可惜現在都忙於 知新 沒有太多的時間去回顧原來的知識了。直到今天,遇到了實際問題,才突然感覺到原來很多東西在記憶中已經非常模糊,記不清了。溫故 系列主要是以的文章 觀點為主,也就是說多數將會是轉貼文章,因為這些基礎知識總會得到專家關注的,而且專家的解釋也會比我清楚得多。原碼 ...

原碼, 反碼 補碼的計算

在計算機內,有符號數有3種表示法 原碼 反碼和補碼。所有資料的運算都是採用補碼進行的。原碼 原碼就是符號位加上真值的絕對值,即最高位為符號位,0 表示正,1 表示負,其餘位表示數值的大小。3 00000011 3 10000011反碼 正數的反碼與其原碼相同 負數的反碼是對其原碼逐位取反,但符號位除...