有符號數與無符號數


1、無符號數:其最高位的1或0,和其它位一樣,用來表示該數的大小。
一個字節(1111 1111) 1111 1111=12^7+12^6+12^5+12^4+12^3+12^2+12^1+12^0=255;所以無符號的一個字節表示的數據范圍是0~255 共 256個;

例如:100 無符號表示:0110 0100

 

2、有符號數:最高數稱為“符號位”。為1時,表示該數為負值,為0時表示為正值。
一個字節(0111 1111) 最高位的0表示正號,0111 1111=+111 1111=+(12^6+12^5+12^4+12^3+12^2+12^1+1*2^0)=+127
一個字節(1111 1111) 最高位的1表示負號,1111 1111 =-111 1111 =-127 所以有符號的一個字節表示的數據范圍是-127 到 +127 共 255個;

例如:100 有符號表示:0110  0100  //最高位0 表示 +號, 后七位才是具體數據位

例如:-100 有符號表示: 1110  0100 //最高位1 表示 -號, 后七位才是具體數據位

 

 

二、java中的基礎數據類型

JAVA中沒有提供無符號的基本數據類型

在 java 中byte 的范圍是 -128 到127  

1、為什么有符號數的一個字節最小值是-128 

計算機存儲數據是按照補碼的形式,

有符號數的一個字節最大:0111 1111 =127;正數的補碼等於原碼     ;

有符號數的一個字節最小:1000 0000 ;反碼= 1111 1111 ;補碼=反碼+1= -111 1111+1 =-0 ;由此可見 -0與0重復;計算機規定 -128等於-0;  

 


免責聲明!

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



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