PHP 运算符:位运算符 2 个改进

简介

位运算符允许对整型数中指定的位进行求值和操作。

例子 名称 结果
$a & $b And(按位与) 将把 $a 和 $b 中都为 1 的位设为 1。
$a | $b Or(按位或) 将把 $a 和 $b 中任何一个为 1 的位设为 1。
$a ^ $b Xor(按位异或) 将把 $a 和 $b 中一个为 1 另一个为 0 的位设为 1。
~ $a Not(按位取反) 将 $a 中为 0 的位设为 1,反之亦然。
$a << $b Shift left(左移) 将 $a 中的位向左移动 $b 次(每一次移动都表示”乘以 2”)。
$a >> $b Shift right(右移) 将 $a 中的位向右移动 $b 次(每一次移动都表示”除以 2”)。

位移在 PHP 中是数学运算。向任何方向移出去的位都被丢弃。左移时右侧以零填充,符号位被移走意味着正负号不被保留。右移时左侧以符号位填充,意味着正负号被保留。

PHP 位运算符

&(按位与)

将 & 两边的数值二进制化进行比较,两边分别 8 位数相互对应,都为 1 则为 1 ,否则为 0 。

例如:1 & 2 ,输出为 0 。

1 的二进制为 00000001
2 的二进制为 00000010
00000000 转为 16 进制是 0
所以 1 & 2  打印就是 0

15 & 8,输出为 8 。

15的二进制为 00001111
 8的二进制为  00001000
00001000 转为 16 进制是 8
 所以 15 & 8  打印就是 8;


| (按位或)

将 | 两边的数值二进制化进行比较 两边分别8位数相互对应,有1 就为 1 否则为 0 。

例如:1 | 8 ,输出结果是 9 。

1的二进制为 00000001
8的二进制为 00001000
00001001 转为 16 进制是 9
 所以 1 | 8  打印就是 9;
本文为 Wiki 文章,邀您参与纠错、纰漏和优化
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!