逻辑运算符: 逻辑或 || or,  逻辑与 && and

真 或 真 == 真 真 或 假 == 真 假 或 真 == 真 假 或 假 == 假

真 且 真 == 真 真 且 假 == 假 假 且 真 == 假 假 且 假 == 假

逻辑运算的短路特性. 一旦从逻辑上能分析出结果后,后面的表达式将不再运行.

逻辑反(!) 一个命题如果是真命题,则其反命题, 是假命题.

异或运算 xor

异或是指, 两个条件必须"一个真,一个假,才为真"

三元运算符

条件?返回值1:返回值2

如果条件为真,则返回值1, 否则,返回值2

程序如果没用三元运算符,可以用什么代替? 可以用if/else代替. 三元只是一个简化的写法.而且效率没有if else 高.

递增 递减运算符 就是语言中没有递增 递减,也不会影响我们写程序.也是一些场景的简化写法

问题 $b++的运算结果是什么呢? 答: $b++,运算结果 是$b本身.     然后再把$b的值+1

如果++号放在变量前, 则是先把变量加1, 然后加1的结果返回.

相当于 $b = $b + 1; return $b;

按位运算符

& ,把2个二进制值对齐, 把1看成ture,把0看成false, 然后每个位上都做 并且 的运算 ,

| ,把2个二进制值对齐, 把1看成ture,把0看成false, 然后每个位上都做 或者 的运算 ,

^ ,把2个二进制值对齐, 把1看成ture,把0看成false, 然后每个位上都做 异或 的运算 ,

~,按位取反

 

计算机里表示负数,是用补码的规则来计算的

具体这样来计算负数,假设有8位 最高位是1 得出符号是负

开始补码规则 计算除符号位之外,其他7位的绝对值 ()111 0011 = 115;

然后再把 绝对值 - 2^7 = 115 - 128 = -13

因此:

1000 0001 ===>  不要想当然是 -1 而是 1 - 128 = -127

1111 1111 ===> 111 111==127 - 128 = -1

1000 0000 ==> -128 1111 1111 ===> -1 0000 0000 ===> 0 0111 1111 ====> 127

为什么 有人问: -128 +127

直观来理解 -127 -0,+0,+127

***/

// 位运算,掌握更好,掌握的不熟悉也不要纠结.

 

移位运算

左移相当于乘 <<

右移相当于除 >>