从整数创建一个字节

时间:2014-01-21 00:17:05

标签: java int byte

我想用整数创建一个字节。例如,我有一个4的整数,我想创建一个值为4的字节。当我做像

这样的事情
byte test = 134;

我得到的字节值为-122,我想要一个简单为134的字节值,这样我以后就可以将其转换为ascii。

我不确定如何实现这一点,但欢迎任何可以提供的帮助。感谢。

2 个答案:

答案 0 :(得分:3)

在Java中byte被解释为已签名(以及intshortlong 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的字符。