3

有两个字节,如何通过从第一个字节中取出前 3 位和从第二个字节中取出后 5 位来创建一个新字节?

例如,对于11100000and 00011111==>11111111怎么办?

我正在使用 Java。

4

4 回答 4

10

byte b1, b2;

取前 3 位:b1 & 0xE0

取最后 5 位:b2 & 0x1F

连接:b1 | b2

于 2012-08-14T06:56:35.030 回答
3

您可以使用BitSet类。这里有一个例子。

于 2012-08-14T06:56:36.630 回答
2

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

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

byte b3 = (b1 & 0xE0) | (b2 & 0x1F);  // = 114  01110010
于 2012-08-14T06:58:22.537 回答
1

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

于 2012-08-14T06:58:28.833 回答