cmkzjw 发表于 2018-12-18 07:36:17

PHP位运算符

  PHP位运算符
  

  位运算符的基本规则:
  

  1:位运算符都是针对整数的二进制数字形式而进行的。
  2:按位与运算基本规则:
      规则表:

        1&1 => 1

        1&0 => 0

        0&1 => 0

        0&0 => 0

  3:按位或运算基本规则:
    规则表:

      1|1 => 1

      1|0 => 1

      0|1 => 1

      0|0 => 0
4:按位非运算:
    ~1 => 0

    ~0 => 1

5:按位异或运算:
    1^1 => 0

    0^0 => 0

    1^0 => 1

    0^1 => 1

    规律:相同就是0,不同就是1



按位与运算:
   

    形式:A&B    //A和B都是数字,其实是常规的十进制数字,但内部会按二进制进行计算

    含义:    将A和B的二进制形式的每一个位上的二进制数字进行按位与(&)运算之后的结果。

    说明:一个数字的二进制形式通常是32位的0和1的组合,也可能是64位,但为了说明问题,我们通常只用8位。

    举例:

$r1 = 9 & 13;    //9的二进制是“1001”,13的二进制是“1101”
http://s4.运维网.com/wyfs02/M02/75/FA/wKiom1ZGlKjBF0NBAAA2igqzZlY894.jpg
按位与运算:
   

    形式:A|B    //A和B都是数字,其实是常规的十进制数字,但内部会按二进制进行计算

    含义:    将A和B的二进制形式的每一个位上的二进制数字进行按位与(|)运算之后的结果。
    举例:

$r1 = 18 | 10;    //18的二进制是“10010”,10的二进制是“1010”
http://s5.运维网.com/wyfs02/M00/75/F8/wKioL1ZGlsejheg-AAA0YMsdpys470.jpg
  

  按位左移运算: n;    //A是一个要被移动的数字,n是一个指定要移动的位数

    含义:将数字A的二进制形式的每一个位上的数字右移动指定的位数n,则最右边的n位移出去,最左边空出来的n位补0即可。(对正数,实际上补符号位)
http://s4.运维网.com/wyfs02/M00/75/FA/wKiom1ZGm07jjZnfAAA-1mG-Vl4906.jpg
  按位非运算:~

      将一个数字的二进制形式的每一个二进制数字取反所得到的结果。

  

  按位异或:
      将2个整数的二进制形式的每一个对应数字进行异或运算之后的结果。

  




页: [1]
查看完整版本: PHP位运算符