如何快速判断奇数和偶数

过去判断奇数偶数的编程习惯一直是除以2取余。

更快的判断方法,就是和1位与。

因为奇数的二进制表示法的最低位是1,偶数的最低位是0。那么用这个数去和1按位与,如果是奇数,那么结果就是1;偶数结果则是0。

如果只是少量判断的话,‘除2取余’和‘1位与’两种方式并没有什么差别,只有在判断次数极多才能明显感觉到速度上的差别;但是相对于‘1位与’来说,‘除2取余’更好理解,可读性更好一些。
所以一般情况下还是尽量少用‘1位与’方式。‘1位与’可以作为一种新的思考问题的思路研究一下

<?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 和 a和 ab是bool类型时,才可以使用按位与或者按位或来判断最后真假。

举个例子:比如$a = 2 (010); $b = 5 (101); 这样按位与的结果就是0。因此这种情况就按照 && || 来判断~

原文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值