我写下面的示例代码:
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);
}
Run Code Online (Sandbox Code Playgroud)
我在输出中得到以下结果:
number_1 = 127
number_2 = -128
Run Code Online (Sandbox Code Playgroud)
我知道byte数据类型的范围(-128到127).我的样品是否正确?发生了什么?有两个补码操作吗?我不明白这种行为.
Jig*_*shi 12
因为一个字节只能容纳-128到127,所以这是溢出的预期行为
检查此循环
for(int index = 0 ; index < 258 ; index ++ ){
System.out.println((byte)index);
}
Run Code Online (Sandbox Code Playgroud)

另见
| 归档时间: |
|
| 查看次数: |
4915 次 |
| 最近记录: |