【问题标题】:How to check if a variable is even in C [duplicate]如何检查变量是否在C中[重复]
【发布时间】:2014-04-20 07:10:48
【问题描述】:

如何在不使用“%”运算符的情况下检查 C 中的变量(int)是否为偶数(即非奇数)? 我在linux平台上运行。

谢谢。

【问题讨论】:

  • @abelenky:他想要模块化划分。很清楚
  • 我认为平台与问题无关。 @abelenky 这个问题对我来说很有意义。
  • 我对“偶数”的用法感到困惑。例如:“这甚至是一个已定义的变量吗?”,vs. “那个数值能被 2 整除吗?”
  • @abelenky:这很奇怪
  • @abelenky:喝咖啡了吗? :)

标签: c


【解决方案1】:
if (!(v & 1))

对于偶数应该是正确的

【讨论】:

  • 我用谷歌搜索,看到人们使用'return (((a>>1)
  • 对于负整数的某些表示的系统上的负数可能会有所不同?
【解决方案2】:

尝试按位 AND0x01 来检查最后一个二进制数字是 0 还是 1。

0 为偶数,1 为奇数。

【讨论】:

  • "0x01" 为什么不是 0x0001? 1个就够了:)
【解决方案3】:

只是为了提供替代答案,并不是说这更好...您可以使用以下比较来检查 int 是否是偶数 (可被 2 整除),其中 @987654322 @ 应为int

asd == asd / 2 * 2;     //returns 1 (true) if asd is even

【讨论】:

    猜你喜欢
    • 2018-08-13
    • 1970-01-01
    • 2015-06-10
    • 1970-01-01
    • 2013-03-28
    • 2014-01-20
    • 2018-10-06
    • 1970-01-01
    相关资源
    最近更新 更多