php变量的运算

0 阅读1分钟

$i=9;

$j = 1;

  1. 加减乘除

    示例运算结果
    -$j取反-1
    i+i+j加法10
    ii-j减法8
    ii*j乘法9
    i/i/j除法9
    ii%j取余0
    ii**j求幂9
  2. ++和--运算

    ++和--在前面是先运算,在后面是先赋值

    k= ++k = ++i;//$k值是10

    l = l = j++;//$l值是1

  3. +=和-=

    k+=k +=i;//等同于k=k = k+$i;

    k=k -=i;//等同于k=k = k-$i;

  4. 按位运算

  5. 10进制转二进制的函数decbin,二进制转10进制的函数bindec

  6. $i的二级制是1;//补0后0001

  7. $j的二进制是1001;

  8. 1)、按位与运算 (&)表示对应位数都为1,才取1,否则取0

  9. i&j;//1,运算结果0001即等于1。

  10.     2)、按位或运算(|)表示对应位数有一个为1就取1

  11.     ii|j;//9,运算结果1001,10进制就是9。

  12.     3)按位异或(^)表示对应位数不同就取1,否则取0

  13.     i^j;运算结果是1000,10进制是8。

  14.     4)、按位取反(~)当前位是0就取1,否则取0

  15.     ~$j;

  16. 运算过程:$j补全32位是 00000000 00000000 00000000 00001001

  17. 取反结果是11111111 11111111 11111111 11110110

  18. 第一位是符号位(0表示整数,1表示负数),说明~$j是一个负数。

  19. 负数是原码取反加1得出来的,那么反推,原码减1,得出

  20. 11111111 11111111 11111111 11110101

  21. 符号位不变取反:10000000 00000000 00000000 00001010

  22. 即-10;

  23. ~-9;

  24. -9补全32位10000000 00000000 00000000 00001001

  25. 取反的:011111111 11111111 11111111 11110110

  26. 正数是原码取反-1得出来的

  27. 原码加1得011111111 11111111 11111111 11110111

  28. 符号位不变取反得00000000 00000000 00000000 00001000

  29. 即:8;