可能重复:
C++ 中的“<<”运算符是什么?
在我正在查看的一段代码中,发生了以下情况:
... (header[4] << 8) + header[5] ...
我对编程相当陌生,以前从未见过 << 运算符。谷歌搜索没有提供任何结果。任何快速指示将不胜感激!
可能重复:
C++ 中的“<<”运算符是什么?
在我正在查看的一段代码中,发生了以下情况:
... (header[4] << 8) + header[5] ...
我对编程相当陌生,以前从未见过 << 运算符。谷歌搜索没有提供任何结果。任何快速指示将不胜感激!
<<
运算符将位向左移动N 位,其中 N 在运算符之后。在您的示例中,地址处的位header[4]
向左移动了 8 位。
这有什么好处是它有效地导致乘以 256,因为 2^8 = 256。如果向右移动,则值header[4]
将除以2^8 = 256。
一些真实的位级示例:
所以最后,位移通常意味着乘法(向左移动)或除法(向右移动),因为这就是它的结果。也就是说,您实际上可以用 2 的幂值替换乘法和除法位移,或用乘法替换位移。编译器通常更喜欢用移位次数来代替乘法和除法,因为对于计算机来说,移位比实际进行值的实际乘法或除法要快得多。