我正在尝试在Java字节变量中设置位。它确实提供了类似的适当方法.setBit(i)
。有人知道我该怎么实现吗?
我可以逐位遍历给定的字节:
if( (my_byte & (1 << i)) == 0 ){
}
但是我不能将此位置设置为1或0,可以吗?
我正在尝试在Java字节变量中设置位。它确实提供了类似的适当方法.setBit(i)
。有人知道我该怎么实现吗?
我可以逐位遍历给定的字节:
if( (my_byte & (1 << i)) == 0 ){
}
但是我不能将此位置设置为1或0,可以吗?
Answers:
使用按位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 /按位运算符。