8位補碼範圍是 -128至127.
根據補碼
的幾條規定即可推出上述結論:
1 若二進位制每位全為0,則表示數0
2 若最高位(即符號位)為0,表示正數
3 若最高位為1, 表示是負數,而該負數的絕對值是多少呢?將每個二進位制位(包括符號位)取反加1,得到乙個二進位制數
,將該數看成無符號數,其值就是上述負數的絕對值。
例如,二進位制的 10000000 的最高位為1, 所以它表示的是負數。是負的多少呢?我們將其八位全部取反,得到01111111, 然後加1,得到10000000. 將該數看作無符號數,值為128, 故計算機中的10000000表示的是-128。【關於這一點要死記硬背了,可以參考下面列出的對比數記憶】
最高位(即符號位)為1的8位有符號數有128個,故可表示128個負數;最高位為0的8位有符號數有128個,但全0的那個表示數0,所以總共只能表示127個正整數。
具體列出如下,對比看一目了然:
十進位制:0(正零、負零都一樣,就乙個零)
00000000--------0
十進位制正數:(從0_0000001到0_1111111共127個數,所以最大正數是127)
0_0000001--------(1)
0_0000010--------(2)
0_0000011--------(3)
0_1111111--------(127)
十進位制負數:(從0_1111111到0_0000000共128個數,所以最大負數是-128)
1_1111111--------(-1)
1_1111110--------(-2)
1_1111101--------(-3)
1_0000000--------(-128) 這是最小的數
記憶辦法:首先,除去符號位,數的個數都是從全7個0到全7個1。其次,正數和負數範圍都是7位,只不過負數從全7個0到全7個1共128個數,而正數由於全7個0被零占去了,所以從0_0000001到全7個1共127個數。
二進位制補碼
二進位制補碼 計算機儲存資料都是以0,1二進位制進行儲存。對於有符號整數儲存 對於浮點數待續 引入補碼概念。原碼即直接將真值轉換為其相應的二進位制形式,而反碼和補碼是對原碼進行某種轉換編碼方式。對於正整數,原碼,反碼和補碼都相一樣 對於負整數,補碼等於反碼加1,而反碼等於原碼除符號位不變其他位按位求...
二進位制補碼
計算機只能識別0和1,使用的是二進位制,而在日常生活中人們使用的是十進位制,正如 亞里斯多德早就指出的那樣,今天十進位制的廣泛採用,只不過我們絕大多數人生來具有10個手指頭這個解剖學事實的結果.儘管在歷史上手指計數 5,10進製 的實踐要比二或三進製計數出現的晚.摘自 數學發展史 有空大家可以看看哦...
二進位制補碼
二進位制補碼主要是為了解決負整數的加減法運算 減法轉化為加法 原碼表示法就是用二進位制的最高位表示符號,0表示正數,1表示負數。以8位為例 1就是表示為0000 0001,1表示為1000 0001.而補碼的規則是正整數保持不變,針對負整數,除符號位外,其他位全部取反,然後 1。注 負整數中,原碼轉...