过去判断奇数偶数的编程习惯一直是除以2取余。最近在看《高性能javascript》,也晓得了更快的判断方法,就是和1按位与。
因为奇数的二进制表示法的最低位是1,偶数的最低位是0。那么用这个数去和1按位与,如果是奇数,那么结果就是1;偶数结果则是0。
<?php $i = 1; $j = 2; echo $i%2 == 1; echo $j%2 == 0; echo ($i & 1) == 1; echo ($j & 1) == 0;
从这个我们也可以在判断真假与或时,利用按位与或者按位或。
<?php $a = true; $b = false; $c = $a & $b; $d = $a | $b; var_dump($c);// 0 var_dump($d);// 1
值得注意的是,只有当明确知道$a和$b是bool类型时,才可以使用按位与或者按位或来判断最后真假。。
举个例子:比如$a = 2 (010); $b = 5 (101); 这样按位与的结果就是0。因此这种情况就按照 && || 来判断~
-