【发布时间】:2012-08-21 07:50:05
【问题描述】:
在here 从字节缓冲区转换回无符号长整数时:
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?但我不明白它是如何工作的。
【问题讨论】:
标签: c bit-manipulation