如何在Java中使用AND操作字节数组?

3

我在想如何在Java中对字节数组使用AND操作?

我看到过如何使用AND操作符来处理int类型的示例,像这样:

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

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

但是如果我有一个字节数组,就像...

byte[] byteArray = new byte[1];

我希望对这个数组进行“与”操作,以便删除最左边/第一位的位。我认为我可以使用掩码0x7F,但是我应该如何将其与字节数组进行“与”操作?


4
你不能整体地进行 AND 运算,但你可以逐个处理:byteArray[0] &= 0x7F - Louis Wasserman
2个回答

1

按位与运算符可以解决问题,它就是简单的&

这是他们用于掩码演示的示例:

class BitDemo {
    public static void main(String[] args) {
        int bitmask = 0x000F;
        int val = 0x2222;
        // prints "2"
        System.out.println(val & bitmask);
    }
}

1

我希望将它与“AND”结合起来,以便在数组中删除最左边/第一个位。

我假设你的“remove”指的是“unset”,因为你无法删除第一个位。如果我是对的,你可以这样做:

    byteArray[0] &= 127;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接