本文的缘由是来源于《编程之美》这本书中的一道题目:求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));