以字节为单位设置特定位

2022-08-31 12:04:31

我正在尝试在Java字节变量中设置位。它确实提供了像 这样的 propper 方法。有谁知道我怎么能意识到这一点?.setBit(i)

我可以按位迭代给定的字节:

if( (my_byte & (1 << i)) == 0 ){

}

但是,我不能将此位置设置为1或0,可以吗?


答案 1

使用按位 OR () 和 AND () 运算符。要设置位,即将位转为:|&pos1

my_byte = my_byte | (1 << pos);   // longer version, or
my_byte |= 1 << pos;              // shorthand

要取消设置位,或将其转换为 :0

my_byte = my_byte & ~(1 << pos);  // longer version, or
my_byte &= ~(1 << pos);           // shorthand

有关示例,请参阅高级 Java/按位运算符


答案 2

要设置一点:

myByte |= 1 << bit;

要清除它:

myByte &= ~(1 << bit);