是否有更有效的执行方式:
f = fmod(x+1, 2)
Run Code Online (Sandbox Code Playgroud)
确定价值是否均匀?
例如
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. */
Run Code Online (Sandbox Code Playgroud)
这使用内置的整数模运算符%来进行测试.
增加1(在我看来)有点令人困惑,我会这样做:
const int f = (x % 2) == 0;
Run Code Online (Sandbox Code Playgroud)
"有点思考"的人经常把测试写成:
const int f = (x & 1) == 0;
Run Code Online (Sandbox Code Playgroud)
因为必须清除最低有效位以使整数为偶数.不过,可以说这不太清楚.