【发布时间】:2015-06-15 17:36:12
【问题描述】:
int myInt = 144;
byte myByte = /* Byte conversion of myInt */;
输出应该是myByte : 90(十六进制值144)。
所以,我做到了:
byte myByte = (byte)myInt;
我得到了myByte : ffffff90 的输出。 :(
我怎样才能摆脱那些ffffffs?
【问题讨论】:
-
为什么应该是90?你没有在那里进行十六进制转换。值 144 超出
byte范围并将溢出,因此该值(负数)。 -
不幸的是,这现在被标记为错误问题的重复,因为问题不是关于如何将
int转换为byte(尽管标题不正确),而是关于如何在将byte转换回int时去掉额外的 1 位。投票重新开放 - 也许它可以作为更合适问题的副本而关闭。 -
如果我搞砸了,我很抱歉 :),我是一名 C++ 开发人员和 java 新手,在 C++ 中我知道如何做到这一点,int -> unsigned int -> unsigned char,但是在 JAVA 中我真的很困惑。