//好吧有道理
Byte b = (byte)207;
System.out.println(b); //value = 207
//ok 没有意义
Integer x = Integer.parseInt("11001111", 2); //207
Byte sens = (byte)x.intValue(); //207
System.out.println(sens); //Value = -49
System.out.println(sens.intValue()); //Value = -49
这是怎么回事?
我如何声明/表示一个值高于 127 的 8 位字节
最佳答案
Java 中的字节是有符号的,因此它们从 -128 变为 127。像这样强制转换 int 将获取 1 的高位(表示 two's complement 有符号数中的负数)并将其转换为负数-49。
从那里,当您使用 sens.intValue()
将其转换回整数时,它会拾取新的负值并返回它,因此您仍然会得到 -49。
不幸的是,您需要将大于 128 的字节存储在 int
数据类型中。
关于java - 大于 127 的字节值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14204883/