8位有符號數的補碼表示範圍

2021-09-30 14:08:52 字數 996 閱讀 5764

範圍是 -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個正整數。

最高位表示符號位吧,也即有符號的8位二進位制數的補碼問題.

下面一步步的說明:

最高位符號位,故後面還有7位,正數時原碼和補碼相同,故此時的

0表示為0000 0000;

1表示為0000 0001;

依次類推...

0111 1111即表示+(64+32+16+8+4+2+1)=+127

負數時最高位為1,負數的補碼為對應的原碼部分取反加1,故有:

-1即1000 0001取反後為1111 1110 再加1得補碼為1111 1111;

-2即1000 0010(理解為-1的數字位加了1成了10)取反後為1111 1101再加1得補碼為1111 1110;

依次類推...

-127即1111 1111取反即1000 0000再加1得補碼為1000 0001

-128即1000 0000(同理可以理解為數字位加1成了000 0000)取反後為1111 1111再加1得補碼1000 0000

看以上的結果,從0000 0000到1000 0000再到1111 1111全部的8位已經組合完畢,不能再有其他情況出現了,故只能表示-128~+127

8位有符號數的取值範圍

首先我們知道,計算機以補碼的形式儲存的,正數的補碼是原碼不變,負數的補碼是原 碼的取反加1。我們先來看 127,原碼0111 1111對吧,若 128是多少呢,0111 1111 1 1000 0000 原碼 然後儲存時,計算機一看是最高位為1,就保持符號位不變,後面7位取反加 1,然後呢,進製捨棄...

如何計算乙個有符號數的補碼表示?

按照 譚浩強.c程式設計 第三版 北京 清華大學出版社,2005 的第40頁至第41頁所述,求乙個負數的補碼的方法如下 例 求 10的補碼的方法如下 1 取 10的絕對值10 2 10的絕對值的二進位制形式為1010 3 對1010取反得1111 1111 1111 0101 這裡假定乙個整數佔16...

有符號數和無符號數的範圍

參考這篇文章 無符號數 最高位不用來表示正負,它沒有負數,比如,4位無符號數表示的範圍,0000 1111,大小即0 15,有符號數 最高位用來表示正負,對於有符號數表示的範圍我們要著重談一下,4位有符號數,負數最小值很多人認為是1111 即 6 然而並不是,我們先把4位有符號數大概全部都寫出來是這...