C# 你能用外行的语言给我解释一下这个代码吗;什么条件?

C# 你能用外行的语言给我解释一下这个代码吗;什么条件?,c#,if-statement,statements,C#,If Statement,Statements,我正在做一个项目,我需要代码来确定输入是否为奇数。 (我还需要能够确定它是否均匀 你能解释一下这是什么意思吗?主要是第一部分 if((x & 1) == 0) printf("EVEN!\n"); else printf("ODD!\n"); 这是一个逐位操作。AND操作屏蔽每一位,保留最后一位。如果最后一位为off(您正在检查零),则表示它为偶数,否则表示它为奇数 例如: 二进制形式的125是011111101 所以 所以125是奇数:) 检查偶数或奇数的另一种方法是

我正在做一个项目,我需要代码来确定输入是否为奇数。 (我还需要能够确定它是否均匀

你能解释一下这是什么意思吗?主要是第一部分

if((x & 1) == 0)
    printf("EVEN!\n");
else
    printf("ODD!\n");

这是一个逐位操作。AND操作屏蔽每一位,保留最后一位。如果最后一位为off(您正在检查零),则表示它为偶数,否则表示它为奇数

例如:

二进制形式的125是011111101

所以

所以125是奇数:)

检查偶数或奇数的另一种方法是使用除法模块:

if (x % 2 == 0) printf("EVEN");
else printf("ODD");

正如用户在下面的评论中指出的,第二个解决方案较慢(以μS为单位)

如另一个答案中所述,它是a,但测试实际上是如果最后一位设置为奇数,因此
==0
。因此,如果最后一位未设置,则为偶数


编辑:刚刚看到答案被删除了,哦,好吧。

一个更简单的方法是:

if( x % 2 == 0 )
{
  printf("EVEN!\n");
}
else
{
   printf("ODD!\n");
}
%或模数运算符返回余数


在您可能正在写作的同一时刻修复:)becaming真的很有竞争力吗?我喜欢它;)即使你这样做了,也没问题:)顺便说一句,很高兴见到和蔼可亲的人,因为现代编译器和处理器对你来说都不是问题,但模运算比位运算要昂贵得多。
if( x % 2 == 0 )
{
  printf("EVEN!\n");
}
else
{
   printf("ODD!\n");
}