在这里 从字节缓冲区转换回无符号长整数时:
unsigned long int anotherLongInt;
anotherLongInt = ( (byteArray[0] << 24)
+ (byteArray[1] << 16)
+ (byteArray[2] << 8)
+ (byteArray[3] ) );
其中 byteArray 被声明为unsigned char byteArray[4];
问题:
我以为byteArray[1]
只是一个无符号字符(8位)。当左移 16 位时,这不是将所有有意义的位移出并用 0 填充整个字节吗?显然它不是8位的。也许它正在移动连续 4 个字节的整个 byteArray?但我不明白这是如何工作的。