java之大于 127 的字节值

myhome 阅读:11 2024-06-03 14:00:57 评论:0

//好吧有道理

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
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号