您當前的位置:首頁 > 農業

8位有符號數的取值範圍下限為什麼是-128?

作者:由 佳黛 發表于 農業時間:2021-05-15

標稱值是一個範圍嗎

每一本計算機教材在講到有符號數的取值範圍的時候,都從沒有講過上下限如何確定的。很多同學學了很多年的計算機,只是簡單的記住8位有符號數的取值範圍是-128-127。有同學深究為什麼不是-128-127或者-127-127?

1. 什麼是有符號數

簡單說就是區分正負數。

2. 計算機如何表示有符號數?

計算機只能識別0,1程式碼,在計算機內部表示為高、低電平。所以計算機為了識別正負數,就讓最高位來表示數的正負,即最高位為符號位。例如:

十進位制的2在計算機內部為:0000 0010

十進位制的-2在計算機內部如何表示呢?——用補碼錶示。

補碼求解方式:先取絕對值,然後各位按位求反,最後加1。

-2的二進位制可以表示為:1000 0010

取絕對值後:0000 0010

按位求反:1111 1101

補碼:

1

111 1110(-2的補碼)

在計算機內部儲存為-2的補碼:

1

111 1110

注意:正數的補碼是自身,負數的補碼求解:先取絕對值,然後各位按位求反,最後加1.

為什麼計算機用補碼錶示負數?——留給大家去探索。

3. 8位有符號數的取值範圍下限為什麼是-128?

上限容易理解:0111 1111,最高位0表示正數,故為127。

下限不是應該是1111 1111嗎?-127。 ——對不起,你忘了計算機內部儲存的是-127的補碼,所以計算機內部表示為:1000 0001(-127的補碼)。你是不是發現還可以減1?為1000 0000。注意1000 0000是補碼哦。 (1)

-127-1=-128。

我們來算算-128的補碼是多少?

先取絕對值128,1000 0000,按位求反:0111 1111 再加1:1000 0000。和(1)的推導正好相符。

所以8位有符號數的取值範圍下限是-128。

標簽: 補碼  127  128  1111  計算機