使用两个受限操作检查整数是否为 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。这些都假定您的意思是“使用给定列表中的两个不同运算符恰好一次”。