天天看点

php位运算符详解

$a = 1;//二进制00000001

$b = 2;//二进制00000010

按位与:两个按位置做比较,两个数都为1就返回1

$a & $b十进制结果是1

怎么得来的呢?高中数学有学到

php位运算符详解

按位或:两个做比较只要有一个为1就返回1

那么$a | $b十进制结果是3

按位异或:有一个为1 有一个为0 那么返回1,如果两个都是1或0 那么返回0

$a ^ $b十进制结果是3

按位取反:0变1 ,1变0,这里需要了解原码,补码,反码

1. 所有正整数的按位取反是其本身+1的负数

2. 所有负整数的按位取反是其本身+1的绝对值

3. 零的按位取反是 -1(0在数学界既不是正数也不是负数)

~ $b结果是-3

左移 <<

右移 <<

php
下一篇: PHP 位运算符