下面的位运算符在现实世界中有哪些用例?
和 XOR 不 或 左/右转
下面的位运算符在现实世界中有哪些用例?
和 XOR 不 或 左/右转
当前回答
我们使用位标记,使会话较小的登录权限在我们的内部网站。
其他回答
我很惊讶,没有人为互联网时代选择一个显而易见的答案。计算子网的有效网络地址。
http://www.topwebhosts.org/tools/netmask.php
我的问题在现实世界中是有用的 只响应第一个WM_KEYDOWN通知?
当在windows C api中使用WM_KEYDOWN消息时,第30位指定前一个键的状态。如果在发送消息之前键为down,则值为1;如果键为up,则值为0
通常位运算比乘除运算快。所以如果你需要用一个变量x乘以9,你会用x<<3 + x这将比x*9快几个周期。如果此代码位于ISR中,则可以节省响应时间。
类似地,如果您想使用数组作为循环队列,那么使用逐位操作来处理环绕检查会更快(也更优雅)。(你的数组大小应该是2的幂)。例如:,你可以使用tail = ((tail & MASK) +1)而不是tail = ((tail +1) < size) ?尾+1:0,如果你想插入/删除。
另外,如果您想要一个错误标志将多个错误代码保存在一起,则每个位可以保存一个单独的值。您可以与它与每个单独的错误代码作为检查。这用于Unix错误代码。
此外,n位位图可以是一个非常酷而紧凑的数据结构。如果要分配一个大小为n的资源池,我们可以使用n位表示当前状态。
如果你想计算你的数字mod(%) 2的某次方,你可以使用yourNumber & 2^N-1,在这种情况下,它与yourNumber % 2^N相同。
number % 16 = number & 15;
number % 128 = number & 127;
这可能只是作为模数运算的一种替代品有用,它的红利很大,是2^N。但即便如此,在我在。net 2.0上的测试中,它相对于模运算的速度提升也可以忽略不计。我怀疑现代编译器已经执行了这样的优化。有人知道更多吗?
似乎没有人提到定点数学。
(是的,我老了,好吗?)