以字节为单位设置特定位
2022-08-31 12:04:31
我正在尝试在Java字节变量中设置位。它确实提供了像 这样的 propper 方法。有谁知道我怎么能意识到这一点?.setBit(i)
我可以按位迭代给定的字节:
if( (my_byte & (1 << i)) == 0 ){
}
但是,我不能将此位置设置为1或0,可以吗?
我正在尝试在Java字节变量中设置位。它确实提供了像 这样的 propper 方法。有谁知道我怎么能意识到这一点?.setBit(i)
我可以按位迭代给定的字节:
if( (my_byte & (1 << i)) == 0 ){
}
但是,我不能将此位置设置为1或0,可以吗?
使用按位 OR () 和 AND () 运算符。要设置位,即将位转为:|
&
pos
1
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/按位运算符
要设置一点:
myByte |= 1 << bit;
要清除它:
myByte &= ~(1 << bit);