下面的位运算符在现实世界中有哪些用例?
和 XOR 不 或 左/右转
下面的位运算符在现实世界中有哪些用例?
和 XOR 不 或 左/右转
当前回答
例如,我使用它们从打包的颜色值中获取RGB(A)值。
其他回答
如果你想计算你的数字mod(%) 2的某次方,你可以使用yourNumber & 2^N-1,在这种情况下,它与yourNumber % 2^N相同。
number % 16 = number & 15;
number % 128 = number & 127;
这可能只是作为模数运算的一种替代品有用,它的红利很大,是2^N。但即便如此,在我在。net 2.0上的测试中,它相对于模运算的速度提升也可以忽略不计。我怀疑现代编译器已经执行了这样的优化。有人知道更多吗?
我经常使用位操作将选项的组合存储在一个整数中。
int options = 0;
其中OPTION1可以定义为1,OPTION2定义为2,OPTION3定义为4,OPTION4定义为8,OPTION5定义为16,…
void addOption(int option)将使用|操作符向options中添加一个选项。
boolean hasOption(int option)将使用&操作符来测试选项中的选项。
按位&用于屏蔽/提取字节的某一部分。
1字节变量
01110010
&00001111 Bitmask of 0x0F to find out the lower nibble
--------
00000010
特别是移位运算符(<< >>)经常用于计算。
我很惊讶,没有人为互联网时代选择一个显而易见的答案。计算子网的有效网络地址。
http://www.topwebhosts.org/tools/netmask.php
奇怪吗?
(value & 0x1) > 0
它能被2(偶数)整除吗?
(value & 0x1) == 0