在我看到的一段代码中,发生了以下情况:
... (header[4] << 8) + header[5] ...
我对编程很新,从未见过&lt;&lt;操作员之前。谷歌搜索没有提供任何结果。任何快速指示将不胜感激!
答案 0 :(得分:5)
<<
运算符将位移到 left N位,其中N位于运算符之后。在您的示例中,header[4]
地址处的位向左移位8位。
这有利于它有效地导致乘以256,因为2 ^ 8 = 256.如果它转移到右,header[4]
处的值将< em>划分乘以2 ^ 8 = 256。
一些真实的比特级示例:
所以最后,经常有一点移位意味着乘法(向左移位)或除法(向右移动),因为这就是它产生的结果。也就是说,你实际上可以通过幂来代替乘法和除法。具有位移的两个值,或者用乘法替换位移。编译器通常更喜欢用位移数替换乘法和除法,因为计算机移位比实际进行实数乘法或除法更快。