日期:2014-05-20  浏览次数:20817 次

if (number&1 == 0) number为int型,这句编译有错,怎么改?在线等
rt

------解决方案--------------------
探讨
(number & 1) == 0

------解决方案--------------------
int number = 0 ;
if((number&1)==0){

}


楼上说的很对 。+++++++1
------解决方案--------------------
== 的优先级比前面&高,所以如果不加括号会先计算后面的==,
这样就相当于让number与一个boolean类型的量做按位与操作了,所以会报错
------解决方案--------------------
这么好的判断奇偶的算法,落在楼主的手里。
让我感觉貌似1级小号拿着神器,却不知道咋用。
------解决方案--------------------
优先级问题。。。
------解决方案--------------------
优先级问题,加上括号就ok
 如:
int number=5 ;
if((number&1)==0){

}

------解决方案--------------------
(number & 1) == 0
------解决方案--------------------
探讨

这么好的判断奇偶的算法,落在楼主的手里。
让我感觉貌似1级小号拿着神器,却不知道咋用。

------解决方案--------------------
随手加括号是个好习惯
------解决方案--------------------
探讨

(number & 1) == 0

------解决方案--------------------
(number & 1) == 0
------解决方案--------------------
学习了
------解决方案--------------------
括号是必须滴啊
------解决方案--------------------
学习学习
------解决方案--------------------
学习了,但是我对这个&运算符不太懂唉

------解决方案--------------------
& 是位运算中的 与运算(二目运算符),就是在将两个数转换成二进制数,相应位进行与运算,得出的数就是结果。

本例中 (number & 1),因为常量1只有一位是1,其他位全是0,所以最后的结果只能为0或1(根据number变量最后一位的值决定)