0

我现在正在研究一个难题....尝试 if (x==5 || x==7) 使用按位运算(在 C 中)编写。一直在研究它....无法弄清楚。

任何帮助,将不胜感激!谢谢

Ps 这不是家庭作业...试图学习考试。

编辑,因此格式类似于 if (x _ _)空格中的按位运算

SORRY 需要指定,只能是两个字符(运算符或数值) 所以%8例如

4

2 回答 2

1

7d = 111b 和 5d = 101b

所以位 0 必须打开,位 1 不关心,位 2 必须打开,位 3-31 必须关闭。因此,屏蔽位 1 并测试 101b

所以你的测试变成 ((x & ~2) == 5)

然后向 Bing 或维基百科询问“卡诺图”,以便您可以自己减少表情。

汤姆在下面的回答也是正确的并且更简单。你可以写

((x & 5) == 5)

这稍微快一点。也许我应该使用卡诺图!

于 2012-10-31T03:56:41.277 回答
-1

你可以用 '101' 和它,你得到 5 和 7 的相同结果,即 101。

于 2012-10-31T04:02:22.567 回答