逻辑运算符: 逻辑或 || 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
***/
// 位运算,掌握更好,掌握的不熟悉也不要纠结.
移位运算
左移相当于乘 <<
右移相当于除 >>
浙公网安备 33010602011771号