【发布时间】:2020-02-20 14:44:08
【问题描述】:
是否可以只使用位运算符,即不使用逻辑/比较/关系运算符?
这基本上等同于以下内容。
(a & 1 == 0) || (a == 1)
我接受在许多语言中可能需要进行最终的相等比较以将结果转换为真/假值,但我没有在问题中考虑这一点。 一个接受输入位数组并为偶数返回与“1”相同的输出位数组的答案基本上就是我所追求的。要么是那个,要么是不可能的原因。
【问题讨论】:
-
不是答案,但我猜第一个测试 (
a & 1) 返回数字是否为奇数。 -
我的错误,更新例子是正确的
-
请指定语言
-
与语言无关的问题,目的是更好地了解按位运算的潜力
-
对于特定数值表现不同的任何事情都不可能仅使用按位运算符来实现,因为与该特定值相等是所有位加在一起的属性,但按位运算符处理每个位的位置隔离。您可以在汇编语言中执行此操作,您可以根据整个结果设置标志位,而无需进行任何显式的非按位测试(XOR 值与 1,结果是零标志或值的低位)。
标签: bit-manipulation bitwise-operators