if(x&y)条件如何在c ++中起作用

Sud*_*dal -7 c++

在c ++中if(x & 5)if(x <= 5)?有什么区别?我已经把x=4两种情况都放在一起.

Mat*_*gni 14

随着x & 5你正在做一个按位和操作(这是不合逻辑的).以来:

4 = 0b0100 AND
5 = 0b0101 =
---------------
4 = 0b0100 != 0
Run Code Online (Sandbox Code Playgroud)

条件的结果是true.那个4 4 <= 5再次小于或等于5()true. 但是你没有测试相同的条件,你只是比较两个返回的操作true.两者都是偶然的,都是真的.

别担心:这是一个错误,很多人刚刚开始编程.请查看按位运算逻辑连接之间的差异.

  • 我不认为这实际上是一个太糟糕的问题。通过在机械工程课程中教授编程,这是我经常看到的一个错误:很多学生不习惯位表示的概念,不知道存在按位运算的概念。 (2认同)