3

それで、Javaのバイト配列でAND操作を使用するかどうか/どのように使用できるか疑問に思っていましたか?

次のように、int で AND 演算を使用する方法のサンプルを見てきました。

int bitmask = 0x000F;
int val = 0x2222;

// prints "2"
System.out.println(val & bitmask);

しかし、次のようなバイト配列があるとします...

byte[] byteArray = new byte[1];

そして、配列の左端/最初のビットを削除するように AND したい。マスクを使用すると思いますが、0x7Fそれをバイト配列とどのように AND しますか?

4

2 に答える 2

1

ビットごとの and 演算子がそのトリックを行います。それは単純です&

これは彼らがマスキングのために提示するデモです:

class BitDemo {
    public static void main(String[] args) {
        int bitmask = 0x000F;
        int val = 0x2222;
        // prints "2"
        System.out.println(val & bitmask);
    }
}
于 2013-06-28T21:55:16.937 に答える
1

配列の左端/最初のビットを削除するようにANDしたい

最初のビットを削除できないため、removeとはunsetを意味すると思います。それは常にそこにあります。私が正しければ、これを行うことができます:

    byteArray[0] &= 127;
于 2013-06-28T21:59:04.330 に答える