009、逻辑运算符、移位

Par @Martin dans le
Tags :
  1. 运算符 逻辑运算符 与(&&)、非(!)、或(||)

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

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

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

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

  1. 移位操作 << – 左移.

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

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

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