1、BitMap的用法:
2、位运算:
-
AND 运算 (
&
): 将两个数据对应的二进制位进行与运算。只有当两个对应的位都是 1 时,结果位才是 1。与&&的类似,只有结果都为true才为true。&是只有两位都是1的时候才位1,其他的情况都为0。 -
OR 运算 (
|
): 将两个数据对应的二进制位进行或运算。只要有一个对应的位是 1,结果位就是 1。与||类似,只要一个为true,则结果为true。|是只要两位其中一个为1就为1。只有两个都是0的时候才位0。 -
XOR 运算 (
^
): 将两个数据对应的二进制位进行异或运算。当两个对应的位不同时,结果位是 1;当两个对应的位相同时,结果位是 0。0和1为1,0和0为0,1和1为0。 -
NOT 运算 (
~
): 对一个数据的二进制位进行取反操作。将 0 变成 1,将 1 变成 0。 -
左移运算 (
<<
): 将一个数的二进制位向左移动指定的位数。左移 n 位相当于乘以 2 的 n 次方。(<<是有符号的左移),(<<<无符号的左移)(10<<1 == 20)(-10<< = -20) -
右移运算 (
>>
): 将一个数的二进制位向右移动指定的位数。右移 n 位相当于除以 2 的 n 次方。(>>有符号的右移),(>>>无符号的右移)(10>>1 = 5) (-10>>1 = )
这些位运算操作可以用于各种算法和数值处理中,例如:
- AND 运算用于位掩码操作和检查特定位;
- OR 运算用于设置特定位;
- XOR 运算用于位翻转和实现简单的加密;
- NOT 运算用于位取反;
- 左移和右移运算用于高效的乘法和除法运算。