在說byte之前,我們先來說說比特,比特是表示信息的最小單位,是二進制數的一位包含的信息或2個選項中特別指定1個的需要信息量。一般來說,n比特的信息量可以表現出2的n次方種選擇。而byte意為“字節”,是計算機文件大小的基本計算單位。1byte=8bits,兩者換算是1:8的關系。1bit只能有一個值,0或者1。
在《HeadFirstJava》中的描述byte(基本數據類型,裝配類型為Byte)作為Java中4中基本整數類型的一種,其它三種是long、int、short。通過前面的了解,byte是1個字節,也就是8位,以杯子類比,
具體的關于byte的計算方式,推薦以下兩種,混合著進行理解記憶。
第一種是機器內存儲結構的分析:
在計算機內,定點數有3種表示法:原碼、反碼和補碼
[原碼]二進制定點表示法,即最高位為符號位,“0”表示正,“1”表示負,其余位表示數值的大小。
[反碼]表示法規定:正數的反碼與其原碼相同;負數的反碼是對其原碼逐位取反,但符號位除外。
[補碼]表示法規定:正數的補碼與其原碼相同;負數的補碼是在其反碼的末位加1。
計算機數據是用補碼表示的,正數的補碼就是它的原碼,而負數的補碼是將其原碼(取絕對值后的原碼)取反加1得到的。
第二種是byte概念意義上的理解:
1.確定byte是1個字節,也就是8位
2.最大的應該是01111111,因為第一位是符號位,0表示正數
3.最小的應該是10000000(11111111是是負數-1的補碼)
4.01111111即127
5.10000000按照上面的解釋為先減一,得到01111111,然后按位取反得到10000000,該結果為欲求負數的絕對值,所以結果是-128(和概念反著來求出該負數)。