当前位置:懂科普 >

IT科技

> java byte取值范围

java byte取值范围

<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;

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





标签: 取值 java byte
  • 文章版权属于文章作者所有,转载请注明 https://dongkepu.com/itkeji/oylwnl.html