逻辑运算符、移位

运算符

逻辑运算符 与(&&)、非(!)、或(||

位运算符 与(&)、非(~)、或(|)、异或(^

也没什么, 主要是搞清楚 &&&||| 的区别

&&& 举例 有一种说法 & 是与, 而 && 是短路与(即第一个是 false 则不计算第二个表达式, 直接返回 false), & 是要两边的表达式都要计算.

从以前学习 C++ 的知识来看, 我认为 && 是逻辑运算, 而 & 是按位运算(算术运算), 两者是有本质上的区别, 之所以 & 要两个表达式都运算次, 是因为它要拿两边表达式的结果按位与.

移位操作

<< -- 左移.

>> -- 右移, 高位用符号位的二进制填充.

>>> -- 无符号右移, 高位用 0 填充.

对正数而言, 左移 n 位就是乘以 2^n, 右移 n 位就是除以 2^n. 而对于负数, 因为负数的表示形式是补码, 它左移/右移就不是简单的乘/除 2^n 了.

Last updated