本文介绍了在java中设置大于127个int字节变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我写了以下示例代码:
public static void main(String [] args)throws Exception
{
byte number_1 = 127;
byte number_2 =(byte)128;
System.out.println(number_1 =+ number_1);
System.out.println(number_2 =+ number_2);
}
我在输出中得到以下结果:
number_1 = 127
number_2 = -128
b $ b
我知道一个字节
范围的数据类型( -128
到 127
)。
我的样本是否正确?发生了什么?有二进制补码运算吗?我不明白这个行为。
解决方案
因为一个字节只能容纳高达-128到127,这是预期的行为溢出
请使用
I write the following sample code:
public static void main(String[] args) throws Exception
{
byte number_1 = 127;
byte number_2 = (byte) 128;
System.out.println("number_1 = " + number_1);
System.out.println("number_2 = " + number_2);
}
I get the following result in output:
number_1 = 127
number_2 = -128
I know range of a byte
data type( -128
to 127
).Is my sample is correct? What happened? Is there a two's complement operation? I don't understand this behavior.
解决方案
Because one byte can hold upto -128 to 127 only, This is expected behavior of overflow
Check with this loop
for(int index = 0 ; index < 258 ; index ++ ){
System.out.println((byte)index);
}
Also See
这篇关于在java中设置大于127个int字节变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!