java byte取值范围

作者:原创时间:2022-03-25
文档

java byte取值范围是什么,让我们一起了解一下?

java中byte类型数据的取值范围为-128~127,因为在java中byte类型的数据,是存储在计算机内存中占1个字节(即0或者1表示的8位二进制数),数据在计算机中都是按照补码形式表现,因此有了原码、反码、补码的基本概念。

那么-128 和 127 这两个数是怎么计算的呢?

首先我们要先了解原码、反码、补码的基本概念。

1、原码就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。

2、反码表示法规定:正数的反码与其原码相同,负数的反码是对其原码逐位取反,但符号位除外。

3、补码表示法规定:正数的补码与其原码相同,负数的补码是在其反码的末位加1。

然后再来了解原码、反码、补码的对应关系?

带符号的数据二进制表示的形式最高位代表符号类型,其中,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, -27.
 
 */
public static final byte   MIN_VALUE = -128;
/**
 
 * A constant holding the maximum value a {@code byte} can
 
 * have, 27-1.
 
 */
 
public static final byte   MAX_VALUE = 127;

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





显示全文
java calculate 苹果13怎么开机 java calendar获取当前时间 java callback java ceiling 平板如何录屏 java cglib iPad怎么重启 java channel java charat java charsequence java charset java cipher java class java class.forname java classloader java clob java clone() java collect java collections java bytebuffer java bundle java build.gradle java bufferedoutputstream java bufferedimage wps怎么求和 java break java blob java bit 如何清理win10电脑c盘 java binlog win10c盘满了怎么清理 java binder java binary excel表格怎么合并单元格 java bigdecimal java benchmark java beanutils 手机充电发热发烫是什么原因 手机充电时可以玩手机吗