為什麼8位有符號定點數的表示範圍是 128 127?

2025-07-06 06:15:18 字數 2603 閱讀 7658

1樓:做而論道

為什麼 8 位有符號定點數的表示範圍是-128~+127?

不都是。

8 位的原碼,表示範圍是:-127 ~ 127。

8 位的反碼,表示範圍是:-127 ~ 127。

8 位的補碼,表示範圍是:-128 ~ 127。

在原碼和反碼中,針對乙個零,都編造了兩個**+0、-0。

所以,它們比補碼,都少代表了乙個數字。

因此,原碼和反碼,就都屬於:亂碼。 計算機是無法使用的。

所以,在計算機中,數值,一律採用補碼錶示和儲存。

8 位 2 進位數,共有 2^8 = 256 種組合,可以代表 256 個數字。

而原碼和反碼,都只代表了 255 個數。)

256 的一半,就是 128。即可以代表 128 個負數:-1 ~ 128。

另外 128 個,就代表了:0 ~ 127。

所以,8 位補碼的表示範圍就是:-128 ~ 127。

這個問題,簡直太簡單了,不至於思考打字三個小時。

為什麼8位有符號型別的數值範圍是-128~

2樓:會哭的禮物

我們知中銀道,對於有符號型別,計算機在處理的時候會把最高位當做符號位,0表示正數,1表示負數。舉例來說(以下舉例均芹培老針對8位有符號數):

0000 0001 即為 1 , 1000 0001 即為 -1 ,那麼很容易得到8位有符號數值的表示範圍應該是 1111 1111 ~ 0111 1111 ,也就是 -127 ~ 127 ,問題來了, -128 是怎麼來的呢?

在說明這個問題之前,先來補充點額外的知識:

在計算機的儲存和計算中,統一的是採用補碼進行處理和運算的,在弄清楚採用補碼的好處之前,我們需要明確如下三個概念:

很明顯,文章開頭的舉例即是原碼,它很符合我們的直觀感覺,但是在計算的時候麻煩就來了,如果直接運算,例如 1+(-1)=0 ,運算的時候 0000 0001 + 1000 0001 = 1000 0010(-2) ,很顯然是錯誤的,因此符號位和數值位必須分開處理!這會增加計算機的硬體開銷。我們換成補碼試試,1的原碼 0000 0001 ,反碼 0000 0001 ,補碼 0000 0001 (正數三者一致);-1的原碼1000 0001,反碼1111 1110,補碼1111 1111(1111 1110 + 0000 0001);因此1+(-1)用補碼來運算就是0000 0001 + 1111 11111 = 0000 0000(最高位溢位捨棄),結果是正確的。

回到最開始的問題,8位有符號數值的最小值嫌公升為什麼是-128而不是-127呢,我們列出來部分原碼、反碼和補碼的對照表看看:

從上表中我們可以看出,0在原碼和反碼中有兩種表示方式,而對應的補碼只有一種表示方式,-128在原碼和反碼中無法表示,在補碼中卻可以表示(用-127的補碼 1000 0001 減1得到 1000 0000 )。而計算機中數值以補碼形式儲存和運算,當然-128可以表示出來,因此8位有符號數值的範圍是-128~127,同理其他位數)也可以以此類推。

3樓:做而論道

8 位 2 進位的**(原碼反碼補碼),共有 2^8 = 256 種組合。

把二進位轉成十進位,它們就是:0~255。

它們,可以表示 256 個數字。

如果以補碼錶示整數,就應該是:-128~+127。

其中,就包括了-128。

這不是很正常的事嗎?

反常的,是原碼和補碼。

計算機磚家編造了乙個符號位(0 或 1),硬加在零上面。

這就為乙個零,編造了兩個**:+0、-0。

天下,只有乙個零啊! 小學生都知道的。

磚家孝枯嫌們,平白無故的,讓它多佔用了乙個「碼位」。

於是巧手,256 組**,只表示了 255 個數字:-127~+127。

「-128」,就被無理的擠出去了。

原碼和反碼,這兩種胡編亂造的**,計算機都是無法使用的。

所以,在計算機系統中,數值,一律採用補碼敗行表示和儲存。

在計算機中,原碼和反碼,都是不存在的。

不存在的東西,各位計算機老師,為什麼還要津津樂道呢?

他們,總得混碗粥喝呀!

8位符號數的取值範圍為何是-128到+127求詳解←_←

4樓:郭堂念飛煙

8位二進位,最高位是符號位,所以0開頭的棚行衡是正數鏈做,1開頭是負數。

所以負數部分帶胡為:

也就是-1~-128非負範圍:

也就是0~127

合起來就是-128~+127

如果用位二進位制補碼表示帶符號的定點整數,則能表示的十進位制數

範圍是 128 127 在十進位制中可以把n位二進位制體系中的數a表示為 求補碼,意味著求 n位二進位制,最高位為符號位,因此表示的數值範圍 2 n 1 2 n 1 1,所以模為2 n。上面提到的8位二進位製模為2 8是因為最高位非符號位,表示的數值範圍為0 2 8 1。擴充套件資料 整數補碼 求給...

字長8位的無符號的二進位制整數能表示的十進位制數值範圍是多少

8位無符號的二進復 制數可以表制示十進位制數0 255,共 bai256個數。du 8位無符號的二進位制zhi數可以表示00000000 11111111,11111111 1 2 dao7 1 2 6 1 2 5 1 2 0 128 64 32 16 8 4 2 1 255。所以8位無符號的二進位...

8位空間表示 127的補碼是什麼形式 機器數

位空間表示 的補碼。是。的位空間原碼為 ,求負整數的補碼,將其原碼除符號位外的所有位取反 變,變,符號位為不變 後加。所以為。位空間表示 的補碼是。的位空間原碼為 培喊好 ,求負整數的補碼,將其原碼除符號位外的所有位取反 變,變,符號位為不變 後加。所以為。x d b x 原 b ffhx 反脊歲旁...