PHP的按位运算符处理整数变量中的各个位,例如有一个整数值是:1234
。
以下是这两个字节看起来像一个字符串位:
00000100 11010010
PHP的按位运算符允许直接操作这些位。
操作符 | 描述 | 示例 |
---|---|---|
& |
仅在两个位集中相同位1 值时保留 |
14 & 3 = 2 相当于 00001110 & 00000011 = 00000010 |
Ι | 在两个位集中保留位1 值 |
14 Ι 3 = 15 相当于 00001110 Ι00000011 = 00001111 |
^ |
位设置为任一值(但是不是两者)都在结果中设置 | 14 ^ 3 = 13 相当于 00001110 Ι 00000011 = 00001101 |
~ |
结果中未设置值中设置的位,反之亦然 | ~14 = -15 相当于 ~00000000000000000000000000001110 = 11111111111111111111111111110001 |
<< |
将第一个值中的所有位移到左侧指定的位数 | 3 << 2 = 12 相当于 00000011 << 2 = 00001100 |
>> |
将第一个值中的所有位移到右侧指定的位数 | 8 >> 2 = 2 相当于 00001000 >> 2 = 00000010 |
~
(非)反转数字中的所有位。