在Java中组合两个字节
有两个字节,如何从第一个字节中取出前3位,从第二个字节中取出最后5位来生成新字节 例如,对于在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
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
。可以吗?是的,请看八公在你问题下的评论。