使用两个受限操作检查整数是否为 0
Check if integer is 0 with two restricted operations
我正在尝试编写一个函数 isZero(int x)
如果 x 为 0,则 returns 1,否则为 returns 0。我怎样才能只使用以下两个运算符来执行此操作?
!
~
&
^
|
+
<<
>>
那!!!x
呢?
查看下图以了解零值和非零值:
x == 0 | x <> 0
-------+-------
!x 1 | 0
!!x 0 | 1
!!!x 1 | 0
这不就是你想要的吗?
几种方式,其中!+x
、+!x
、!x | 0
、!x << 0
。这些都假定您的意思是“使用给定列表中的两个不同运算符恰好一次”。
我正在尝试编写一个函数 isZero(int x)
如果 x 为 0,则 returns 1,否则为 returns 0。我怎样才能只使用以下两个运算符来执行此操作?
!
~
&
^
|
+
<<
>>
那!!!x
呢?
查看下图以了解零值和非零值:
x == 0 | x <> 0
-------+-------
!x 1 | 0
!!x 0 | 1
!!!x 1 | 0
这不就是你想要的吗?
几种方式,其中!+x
、+!x
、!x | 0
、!x << 0
。这些都假定您的意思是“使用给定列表中的两个不同运算符恰好一次”。