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;