if (number&1 == 0) number为int型,这句编译有错,怎么改?在线等
rt
------解决方案--------------------
------解决方案-------------------- int number = 0 ;
if((number&1)==0){
}
楼上说的很对 。+++++++1
------解决方案--------------------== 的优先级比前面&高,所以如果不加括号会先计算后面的==,
这样就相当于让number与一个boolean类型的量做按位与操作了,所以会报错
------解决方案--------------------这么好的判断奇偶的算法,落在楼主的手里。
让我感觉貌似1级小号拿着神器,却不知道咋用。
------解决方案--------------------优先级问题。。。
------解决方案-------------------- 优先级问题,加上括号就ok
如:
int number=5 ;
if((number&1)==0){
}
------解决方案--------------------(number & 1) == 0
------解决方案--------------------
------解决方案--------------------随手加括号是个好习惯
------解决方案--------------------
------解决方案--------------------(number & 1) == 0
------解决方案--------------------学习了
------解决方案--------------------括号是必须滴啊
------解决方案--------------------学习学习
------解决方案--------------------学习了,但是我对这个&运算符不太懂唉
------解决方案--------------------& 是位运算中的 与运算(二目运算符),就是在将两个数转换成二进制数,相应位进行与运算,得出的数就是结果。
本例中 (number & 1),因为常量1只有一位是1,其他位全是0,所以最后的结果只能为0或1(根据number变量最后一位的值决定)