有没有更有效的执行方式:
f = fmod(x+1, 2)
确定一个值是否是偶数?
例如
f = 1
对于所有偶数值x
f = 0
对于所有奇数值x
我只需要它来处理一组正整数(我的x
数据类型是int
)
你为什么使用fmod()
整数?
标准测试将是:
const int f = (x + 1) % 2; /* Will be 1 if x is even, 0 if it's odd. */
这使用内置的整数模运算符%
进行测试。
添加 1 (在我看来)有点令人困惑,我会这样做:
const int f = (x % 2) == 0;
“按位思考”的人经常将测试写成:
const int f = (x & 1) == 0;
因为必须清除最低有效位才能使整数为偶数。不过,这可以说不太清楚。
假设正整数
f = 1 - (x&1);
应该为你工作。
我想你可以只转换为 int ......
f = (int)x % 2;