逻辑位运算符用于什么?我听说我可以通过读取最后一位来测试数字是否为奇数。我什么都不知道。我需要一个实际的例子。谢谢你。
答案 0 :(得分:2)
如果数字为奇数,则其最后一位(二进制)为1.例如:
5 ~ 00000101
31 ~ 00011111
but 8 ~ 00001000
所以,如果你和它(一点一点地)和1,这是
1 ~ 00000...01
如果数字为奇数(即最后一位为1),则得到1。
5 ~ 00000101
1 ~ 00000001
-------------
00000001 => odd
另一种用法是在一个变量,密码等等中存储多个标志。其中有很多标记。
答案 1 :(得分:0)
通常,其LSB位为1
的数字是奇数。因此,您可以使用按位AND运算符检查它是否设置了最后一个LSB位,如果是,则它是奇数。
if((num & 1) == 1); // Its an odd number
但是,您不能将逻辑运算符与按位运算符混合使用。它们的不同之处在于,
答案 2 :(得分:0)
二进制运算最常见的应用之一是位域。例如,如果您需要知道具有2个可能值的状态,而不是使用每个状态需要1个字节的字符或bool数组,则可以使用相同的数组,但是您可以使用每个位来保留一个对象的状态,所以使用8倍的内存。此外,例如,您可以使用二进制运算来标记某些错误。在这种情况下,通过它们或使用一些操作符来查找在多个位置(二进制和)发生的错误或者从多个源(二进制或多个)带来错误非常容易。此外,通过使用二进制xor,您可以找到在一个地方发生的错误,但在另一个地方却找不到。 注意:您可以将“错误”替换为许多其他内容。