在Java中组合两个字节

在Java中组合两个字节,java,bit-manipulation,bit,Java,Bit Manipulation,Bit,有两个字节,如何从第一个字节中取出前3位,从第二个字节中取出最后5位来生成新字节 例如,对于11100000和00011111==>11111111,这将是如何实现的 我正在使用Java。代码>字节b1,b2 取前3位:b1和0xE0 取最后5位:b2&0x1F 连接:b1 | b2您可以使用该类。在。中有一个例子,使用掩码0xE0(11100000)和0x1F(00011111),可以屏蔽不需要的位,并按位或将它们组合在一起: byte b1 = 123; // 01111011 byte b

有两个字节,如何从第一个字节中取出前3位,从第二个字节中取出最后5位来生成新字节

例如,对于
11100000
00011111
==>
11111111
,这将是如何实现的


我正在使用Java。

代码>字节b1,b2

取前3位:
b1和0xE0

取最后5位:
b2&0x1F


连接:
b1 | b2

您可以使用该类。在。

中有一个例子,使用掩码
0xE0
(11100000)和
0x1F
(00011111),可以屏蔽不需要的位,并按位或将它们组合在一起:

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

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

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

你的例子选错了,因为
11100000 | 00011111==11111111111
,我不认为这是你想要的。你对java位操作有什么发现吗?你到底在哪里被卡住了?我认为这个问题是个懒惰的问题,只是想得到答案而不去尝试……但这就是我。展示你对该主题的研究以及你不了解的内容。发布一个代码示例,说明您正在尝试执行的操作、注释等。@irrelephant,是的,确实如此。我只需要将最后一个字节的最后5位附加到第一个字节的前3位,因为字节是
-1
Java将允许:
字节b1=(字节)0xE0,b2=0x1F,b3=(字节)(b1 | b2)
给出
-1
。可以吗?是的,请看八公在你问题下的评论。