首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大于127的字节值

问大于127的字节值
EN

Stack Overflow用户
提问于 2013-01-07 22:06:24
回答 4查看 8.9K关注 0票数 3

//Ok说得通

代码语言:javascript
复制
Byte b = (byte)207;
System.out.println(b); //value = 207

//ok没有意义

代码语言:javascript
复制
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位字节,然后表示

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-01-07 22:07:45

Java中的字节被签名,所以它们从-128转到127。在1(表示二补有符号数字中的负数)转换为负数时,这样的整数转换为负数-49。

在那里,当你用sens.intValue()把它转换回一个整数时,它取起新的负值并返回它,所以你仍然得到-49。

不幸的是,您需要在int数据类型中存储大于128个字节。

票数 9
EN

Stack Overflow用户

发布于 2013-01-07 23:29:31

由于Java是签名的,所以不能表示大于127个字节的值。

在你的例子中:

代码语言:javascript
复制
Byte b = (byte)207;
System.out.println(b); //value = 207

有个错误。打印输出为-49。

代码语言:javascript
复制
Byte b = (byte)207;
System.out.println(b); //value = -49

这意味着这两种情况是相同的。

票数 1
EN

Stack Overflow用户

发布于 2016-02-16 20:05:18

它不能超过127正,但它可以变为128负值的原因是,字节中的8位数字中的前1位代表的是负数还是正数:

1=负

0=正

因为你可以用“111111”来表示负数,所以你可以得到-127。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14204883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档