【发布时间】:2015-12-27 14:02:39
【问题描述】:
我被困在一个函数上,如果仅使用 ! ~ & ^ | + >.
到目前为止,我的掩码为 0x55 (0101),例如,1110 (true) masked 将返回 0100,1010 (false) 将返回 0000。我如何表达答案,以便 true 返回 1 而 false将返回 0? 非常感谢 编辑: 到目前为止,我的代码是:
int anyEven(int x){
int mask = 0x55;
return (x&mask);
}
【问题讨论】:
-
显示你做了什么。
-
if(result > 0) return 1; else return 0;或if(result > 0) result = 1; return result; -
@FiddlingBits 是否有任何其他方式可以通过我上面列出的运算符表达这一点,因为我无法使用 if/else
-
你的意思是
return !!(x & mask); -
创建函数
bool,写的很好。但是请注意,您只检查低 8 位。没有简单的可移植方法来测试int的所有位。
标签: c binary bit bitwise-operators logical-operators