代码之家  ›  专栏  ›  技术社区  ›  Fredou

在1的条件下检查一个数字是否为偶数但不是零?

  •  0
  • Fredou  · 技术社区  · 11 年前

    我认为这是不可能的,但这能在1个条件下而不是2个条件下完成吗?

    我尽量不这么做

    bool test = (Number1 & 1) == 0 && (Number1 > 0);
    

    或者这个

    bool test = (Number1 & 1) == 0 && (Number1 != 0);
    
    2 回复  |  直到 11 年前
        1
  •  4
  •   JML    11 年前

    对于所有偶数将返回true>=对于所有奇数以及所有数字<=0:

    bool test = ((Number1 - 1) % 2 == 1);
    
        2
  •  0
  •   Corey Ogburn    11 年前

    尽管这在技术上是 Number1 转换为变量,我认为它会起作用。我假设 数字1 是从长期运行的函数调用或属性返回的?无论哪种方式:

    private bool IsEvenNotZero(int num) {
        return (num & 1) == 0 && (num != 0);
    }
    
    bool test = IsEvenNotZero(Number1);
    

    这将把它放在一个参数中,您可以用这种方法测试参数两次。我不知道你为什么不能 数字1 在一个正常变量中,在不了解更多情况的情况下,我不知道是否可以做得更好。