Cya*_*ime 3 c c++ java bitwise-operators
所以我在C中有这个简单的代码.
if (flags & 4)
Run Code Online (Sandbox Code Playgroud)
现在,当我将行移植到java时:
if ((flags & 4) == 1)
Run Code Online (Sandbox Code Playgroud)
它不会触发.什么是将C代码移植到Java的正确方法?我和&运营商做错了什么?
das*_*ght 15
它应该是!= 0而不是== 1:
if ((flags & 4) != 0)
Run Code Online (Sandbox Code Playgroud)
这样做的原因是在C 语句中考虑true了非零的任何内容if,而Java会强制您使用布尔值.在这种情况下,表达式可以计算为4或0,因此将其与1进行比较始终为false.
| 归档时间: |
|
| 查看次数: |
182 次 |
| 最近记录: |