IT科技

當前位置 /首頁/IT科技 > /列表

byte取值範圍,java

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

java byte取值範圍是什麼,讓我們一起了解一下?

java中byte類型數據的取值範圍爲-128~127,因爲在java中byte類型的數據,是存儲在計算機內存中佔1個字節(即0或者1表示的8位二進制數),數據在計算機中都是按照補碼形式表現,因此有了原碼、反碼、補碼的基本概念。

那麼-128 和 127 這兩個數是怎麼計算的呢?

首先我們要先了解原碼、反碼、補碼的基本概念。

1、原碼就是二進制定點表示法,即最高位爲符號位,“0”表示正,“1”表示負,其餘位表示數值的大小。

2、反碼錶示法規定:正數的反碼與其原碼相同,負數的反碼是對其原碼逐位取反,但符號位除外。

3、補碼錶示法規定:正數的補碼與其原碼相同,負數的補碼是在其反碼的末位加1。

java byte取值範圍

然後再來了解原碼、反碼、補碼的對應關係?

帶符號的數據二進制表示的形式最高位代表符號類型,其中,0表示正數,1表示負數。

對於正整數而言,原碼、反碼和補碼是相同的,比如127。

                     符號位           數值位

原碼錶示爲:     0               1111111

反碼錶示爲:     0               1111111

補碼錶示爲:     0               1111111

即127在計算機中表示爲01111111。

對於負整數而言,反碼錶示爲原碼的最高位不變,其他位反轉(就是0變爲1,1變爲0),補碼錶示反碼加1。比如-127。

                     符號位           數值位

原碼錶示爲:     1               1111111

反碼錶示爲:     1               0000000

補碼錶示爲:     1               0000001

即-127在計算機中表示爲10000001。

那麼最大範圍和最小範圍的計算是怎麼來的?

1、最大範圍

這個比較簡單就是計算01111111的十進制數,透過二進制計算十進制:

max = (2^0+2^1+2^2+...+2^6),很容易看出這是一個等比數列,透過等比數列求和公式計算爲:max=2^0(1-2^7)/1-2=2^7-1=127

2、最小範圍

對於正整數0,二進制表示爲00000000

對於負整數-0,二進制表示爲100000000(補碼)    10000000(原碼)

由於正整數0和負整數-0相等,但是它們的二進制表示形式卻不一樣並且-0還是9位二進制表示的,所以爲了解決這個問題,就讓10000000表示爲-128即min=-128。

具體代碼展示如下:

/**這裏是Java源碼  * A constant holding the minimum value a {@code byte} can  * have, -2<sup>7</sup>.  */public static final byte   MIN_VALUE = -128;/**  * A constant holding the maximum value a {@code byte} can  * have, 2<sup>7</sup>-1.  */ public static final byte   MAX_VALUE = 127;

以上就是小編今天的分享了,希望可以幫助到大家。





TAG標籤:取值 byte java #