3

2 バイトの場合、最初のバイトから最初の 3 ビットを取得し、2 番目のバイトから最後の 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 に答える