我现在正在制作一个谜题....试着写
if (x==5 || x==7)
使用按位运算(在C中)。已经工作了一段时间......无法弄明白。
任何帮助将不胜感激!感谢
这不是家庭作业......试图学习考试。
编辑所以格式会是这样的
if (x _ _)
在空白处按位操作
SORRY需要指定,只能是两个字符(运算符或数值)
所以%8
例如
答案 0 :(得分:1)
7d = 111b且5d = 101b
因此位0必须打开,位1无关紧要,位2必须打开,位3-31必须关闭。 因此,屏蔽掉第1位并测试101b
所以你的测试成为((x& ~2)== 5)
然后向Bing或维基百科询问“卡诺地图”,以便你可以自己减少表达。
汤姆在下面的回答也是正确的,而且更简单。你可以写((x & 5) == 5)
这稍快一些。也许我应该使用卡诺图!
答案 1 :(得分:-1)
您可以将它与'101'进行对比,你得到的结果与5和7相同,即101.