(INBuffer[3] << 8) + INBuffer[2]

这实际上是将INBuffer [3]中的位移到INBuffer [2]或[3]中被清零然后加到[2]上吗?

最佳答案

这是从两个8位值中得出16位值的简单方法。

INBuffer[3] = 0b01001011;
INBuffer[2] = 0b00001001;

INBuffer[3]<<8 // 0b0100101100000000;
(INBuffer[3]<<8) + INBuffer[2] // 0b0100101100001001

通常这表示为
(INBuffer[3]<<8) | INBuffer[2];

关于c++ - 在该移位操作中正在做什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1566603/

10-09 17:18