要清空特定一位,则将该整数与特定所对应的掩码的按位补码(特定位为 0,其他位为 1)
进行按位与(bitwise-AND)操作。Java 中的按位与操作符是&,而按位补码操作符是~:
BIT7 本來是 1000 0000 0x80
~BIT7 反向後 11111111111111111111111101111111
作&之後可以可以去除0位置的內容
bitmap &= ~BIT7
,一次设置和清空多位:
bitmap &= ~(BITS2AND3|BIT5);
~(BITS2AND3|BIT5) 所有要關閉的位置
bitmap 要被關閉的數值
要测试一个整数的特定位是否已经被设置,可以将该整数与特定位对应的掩码进行按位与,
并将操作结果与 0 比较:
boolean bit6Set = (bitmap & (1<<6)) != 0;
沒有留言:
張貼留言