PHP位运算常用技巧总结

jerry thinkphp 2015年11月19日 收藏
本文的缘由是来源于《编程之美》这本书中的一道题目:求1的数目。

看完之后,觉得位运算用得起到好处,真的很美妙!所以,就从PHP的角度,对位运算做了一些常用的总结归纳,下面的一些位运算的应用,部分来自互联网的搜集。(参考博客:优秀程序员不得不知道的20个位运算技巧)。
1.获取INT型最大值和最小值
最大值:

~(1 << 31)

最小值:

(1 << 31)

2.乘以2运算和除以2运算
乘以2:

$n << 1

除以2:

$n >> 1

3.乘以2的m次方和除以2的m次方
乘以2的m次方:

$n << $m

除以2的m次方:

$n >> $m

4.判断一个整数的奇偶性

($n & 1) == 1

5.不用临时变量交换两个数

$a ^= $b;
$b ^= $a;
$a ^= $b;

6.从低位到高位,取n的第m位

return ($n >> ($m-1)) & 1;

7.从低位到高位.将n的第m位置1

return $n | (1 << ($m-1));

8.从低位到高位,将n的第m位置0

return $n & ~(1 << ($m-1));