我想用整数创建一个字节。例如,我有一个4的整数,我想创建一个值为4的字节。当我做像
这样的事情byte test = 134;
我得到的字节值为-122,我想要一个简单为134的字节值,这样我以后就可以将其转换为ascii。
我不确定如何实现这一点,但欢迎任何可以提供的帮助。感谢。
答案 0 :(得分:3)
在Java中byte
被解释为已签名(以及int
,short
和long
s。 134
的无符号字节值与有符号字节值-122
相等。如果您希望使用byte
的无符号值,可以将此值存储在超过8位的有符号整数中,例如int
:
byte test = (byte) 134;
int unsignedByteValue = ((int) test) & 0xff;
// now unsignedByteValue == 134
0xff
的位掩码确保只有unsignedByteValue
的低8位是1。否则,签名为byte
的否定信息会导致签名延长为负int
。
答案 1 :(得分:0)
在Java中,所有字节都是有符号的。它们的值介于-128到127之间。如果打印出字节,那就是你得到的全部内容。
但Java有不同的字符类型。你应该改用它:
char test = 134;
char
类型未签名,可容纳数字值最高为65,535的字符。