首页  >  文章  >  后端开发  >  php基础之位运算

php基础之位运算

巴扎黑
巴扎黑原创
2016-11-23 13:20:511102浏览

php位运算

$a & $b and(按位与)

$a | $b or(按位或)

$a ^ $b Xor(按位异或)

~$a Not(按位非)

$a << $b Shift left(左移)

$a >> $b Shift right(右移)

详解

$a & $b 按位与 把$a和$b中都为1的位设为1;

例:10 & 12 = 8

10 1010

12 1100

1000 8

$a | $b 按位或 把$a或$b中有一个为1的为设为1;

例:10 | 12 = 14

10 1010

12 1100

1110 14

$a ^ $b 按位异或

例:10 ^ 12

10 1010

12 1100

0110 6

~a 按位非 把$a中的为0的为设为1,1的为设为0

例:~10 =

10 1010 1111111111111111111111111111111111111111111111111111111111110101 -11

$a << $b 左移 把$a中的为向左移动$b次(每一次移动都表示乘以2);

例:1 << 10 = 1024

1(1) 左移10位 10000000000(1024)

相当于1*2的10次方,php中没有幂运算真是郁闷。

$a >> $b 右移 把$a中的为向右移动$b次(每一次移动都表示除以2);

例:1024 << 2 = 1256

10000000000(1024) 右移2位就是 100000000(256)

php为运算$a & $b and(按位与)$a | $b or(按位或)$a ^ $b Xor(按位异或)~$a Not(按位非)$a << $b Shift left(左移)$a >> $b Shift right(右移)

详解$a & $b 按位与 把$a和$b中都为1的位设为1;例:10 & 12 = 810 101012 1100 1000 8

$a | $b 按位或 把$a或$b中有一个为1的为设为1;例:10 | 12 = 1410 101012 1100 1110 14

$a ^ $b 按位异或例:10 ^ 1210 101012 1100 0110 6

~a 按位非 把$a中的为0的为设为1,1的为设为0例:~10 = 10 1010 1111111111111111111111111111111111111111111111111111111111110101 -11

$a << $b 左移 把$a中的为向左移动$b次(每一次移动都表示乘以2);例:1 << 10 = 10241(1) 左移10位 10000000000(1024)相当于1*2的10次方,php中没有幂运算真是郁闷。

$a >> $b 右移 把$a中的为向右移动$b次(每一次移动都表示除以2);例:1024 << 2 = 125610000000000(1024) 右移2位就是 100000000(256)


声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn