首页 > PHP > php 位运算符 示例和运用场景

php 位运算符 示例和运用场景

2025-01-25 09:39:00
PHP 中的位运算符是对整数的二进制表示进行操作的运算符,包括按位与(&)、按位或(|)、按位异或(^)、按位取反(~)、左移(<<)和右移(>>)。以下是它们的示例和运用场景:

按位与(&)

 

  • 示例$a = 5 & 3;,5 的二进制是 101,3 的二进制是 011,按位与运算后结果为 001,即十进制的 1。
  • 运用场景:可以用于检查某个数的特定位是否为 1。例如,判断一个数是否为偶数,可通过 $num & 1 来判断,结果为 0 则是偶数,为 1 则是奇数。

按位或(|)

 

  • 示例$a = 5 | 3;,5 的二进制是 101,3 的二进制是 011,按位或运算后结果为 111,即十进制的 7。
  • 运用场景:用于将某些位置为 1。比如有一组权限标志,要给用户同时赋予读取和写入权限,可以通过 $permissions = $permissions | READ_PERMISSION | WRITE_PERMISSION 来实现。

按位异或(^)

 

  • 示例$a = 5 ^ 3;,5 的二进制是 101,3 的二进制是 011,按位异或运算后结果为 110,即十进制的 6。
  • 运用场景:可以用于在不使用临时变量的情况下交换两个变量的值。

按位取反(~)

 

  • 示例$a = ~5;,5 的二进制是 00000101,按位取反后为 11111010,由于 PHP 中整数是有符号的,所以结果为 - 6(补码表示)。
  • 运用场景:在某些算法中,可能需要对所有位取反来表示特定的状态或进行特殊的计算。

左移(<<)

  • 示例$a = 5 << 2;,5 的二进制是 101,左移 2 位后变为 10100,即十进制的 20。
  • 运用场景:可以用于快速计算一个数乘以 2 的幂次方。例如,$num << 3 相当于 $num * 8

右移(>>)

  • 示例$a = 20 >> 2;,20 的二进制是 10100,右移 2 位后变为 101,即十进制的 5。
  • 运用场景:用于快速计算一个数除以 2 的幂次方。例如,$num >> 4 相当于 $num / 16,结果会向下取整。
使用 Ctrl+D 可将网站添加到书签
收藏网站
扫描二维码
关注早实习微信公众号
官方公众号
Top