如何将两个字节附加到int

时间:2011-11-11 07:43:17

标签: java integer append byte

我正在尝试追加两个具有十六进制值的字节并将它们存储为整数。显然一切都是无符号值。 我将提供一个例子,因为这样更容易看到。

两个字节 0x20 0x07

整数 编辑:哎呀我在这里犯了一个大错。抱歉所有的困惑。 我想整数存储2007而不是0x2007。我真的很抱歉。

有没有办法在不将字节转换为String并追加并切换到int的情况下执行此操作? 或者转换为String是唯一的方法吗?

2 个答案:

答案 0 :(得分:4)

你可以尝试

byte b1 = (byte) 0x90;
byte b2 = (byte) 0xF7;

int i = ((b1 & 0xFF) << 8) | (b2 & 0xFF);

但是,如果您使用的是DataInputStreamByteBuffers,则通常不需要这样做。在这两种情况下都可以使用getShort

答案 1 :(得分:3)

是的,只需将b1移位8位并将其添加到b2:

byte b1 = 0x20;
byte b2 = 0x07;

int i1 = (b1 << 8) + b2; // gives 0x2007

// alternatively
int sameInt = b1 * 256 + b2; // gives 0x2007