逻辑运算符、移位
运算符
逻辑运算符 与(&&
)、非(!
)、或(||
)
位运算符 与(&
)、非(~
)、或(|
)、异或(^
)
也没什么, 主要是搞清楚 &&
与 &
和 ||
与 |
的区别
拿 &&
与 &
举例 有一种说法 &
是与, 而 &&
是短路与(即第一个是 false
则不计算第二个表达式, 直接返回 false
), &
是要两边的表达式都要计算.
从以前学习 C++ 的知识来看, 我认为 &&
是逻辑运算, 而 &
是按位运算(算术运算), 两者是有本质上的区别, 之所以 &
要两个表达式都运算次, 是因为它要拿两边表达式的结果按位与.
移位操作
<<
-- 左移.
>>
-- 右移, 高位用符号位的二进制填充.
>>>
-- 无符号右移, 高位用 0 填充.
对正数而言, 左移 n 位就是乘以 2^n
, 右移 n 位就是除以 2^n
. 而对于负数, 因为负数的表示形式是补码, 它左移/右移就不是简单的乘/除 2^n
了.
Last updated