有符號數的范圍


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

https://wenku.baidu.com/view/4d9cfe8b7cd184254a353515.html

用2^8來表示無符號整數的話,全世界的理解都是0 - 255了,那么,有符號呢? 用 最高位表示符號,0 為+,1 為-,那么,正常的理解就是-127 至+127 了. 

這就是原碼了,值得一提的是,原碼的弱點,有2 個0,即+0 和-0,還有就是,進行異 號相加或同號相減時,比較笨蛋,先要判斷2個數的絕對值大小,然后進行加減操作, 

最后運算結果的符號還要與大的符號相同. 

於是乎,反碼產生了,原因....略,反正,沒過多久,反碼就成為了過濾產物,也就是,后 來補碼出現了. 補碼的知識不說述,只說有關+127 和-128 的. 

官方的定義[-2^(n-1),2(n-1)-1],

http://blog.csdn.net/shuzfan/article/details/77601037

在計算機中無符號數用原碼表示,有符號數用補碼表示。w位補碼表示的值為:

最高位 也稱符號位,1表示負數,0表示正數,符號位為0時,和無符號數的表示是相同的,以下是4位補碼的示例:

0101 = -0*2+ 1*2+ 0*21 + 1*20 = 5

1101 = -1*2+ 1*2+ 0*21 + 1*20 = -3

w位的補碼表示的數值范圍是[-2w-1, 2w-1-1],如4位的補碼表示的最小值是-8(1000),最大值是7(0111)。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM