在Java中组合两个字节

时间:2012-08-14 06:49:58

标签: java bit-manipulation bit

有两个字节,如何通过从第一个字节开始的前3位和从第二个字节开始的最后5个来创建一个新字节?

例如,1110000000011111 ==> 11111111

我正在使用Java。

4 个答案:

答案 0 :(得分:10)

byte b1, b2;

取前3位:b1 & 0xE0

取最后5位:b2 & 0x1F

连接:b1 | b2

答案 1 :(得分:3)

您可以使用BitSet课程。 here中有一个例子。

答案 2 :(得分:2)

使用掩码0xE0(11100000)和0x1F(00011111),您可以将您不想要的位和按位或它们一起屏蔽掉:

byte b1 = 123; // 01111011
byte b2 = 50;  // 00110010

byte b3 = (b1 & 0xE0) | (b2 & 0x1F);  // = 114  01110010

答案 3 :(得分:1)

(b1 & 0xe0) | (b2 & 0x1f)