Java中Byte的範圍是如何計算的?IT技術討論2018-04-13 16:03:26

在這裡我們需要先了解另一個單位:bit “位元”,

bit是計算機進行資料儲存的最小單位,

計算機內部利用二進位制儲存資料,一bit(位元)就代表一位二進位制。即一個bit就代表一個0或1。

而Byte(“位元組”)是計算機進行資料儲存的基本單位。

一Byte有八位二進位制也就是

1Byt = 8bit

資料的儲存又分為有符號和無符號數,有符號數二進位制的最後高代表符號,

0代表+(正),1代表-(負)

,如:有符號數

0

11 轉換為十進位制為2^0+2^1=3,無符號

1

11轉換為十進位制則為-3。(有下劃線的數字代表符號位,後面同樣如此)

然後我們開始正式介紹Byte範圍的計算

Java中Byte的範圍是如何計算的?

當Byte無符號時

Byte的範圍可以由二進位制表示為 0000 0000 ~ 1111 1111,

將二進位制轉化為十進位制:

0000 0000 = 0;

1111 1111 = 2^0+2^1+2^2+2^3+2^4+2^5+2^6+2^7 = 255;

所以Byte的取值範圍為 0 ~255 。

Java中Byte的範圍是如何計算的?

當Byte有符號時

由於最後一位變為了符號位 所以

0 1111111成了最大的數。

將二進位制轉化為十進位制:

0

1111111 = 2^0+2^1+2^2+2^3+2^4+2^5+2^6 = 127;

負數需要用補碼錶示,1 1111111的

絕對值

取反得到0000000 轉換為十進位制為 0加一取反則為補碼 :

-1

將1 0000000的

絕對值

取反得到11111111 轉換為十進位制為 127

再加一取反為

-128

所以Byte有符號時的取值範圍為 -128~127

java採用的有符號儲存,所以java中Byte的取值範圍採用有符號時計算。

Java中Byte的範圍是如何計算的?