欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php基础之位运算

程序员文章站 2022-06-01 09:20:06
...
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)