【发布时间】:2014-02-07 11:49:34
【问题描述】:
我不知道这个函数是如何工作的:
void print3bytes(unsigned char s[],unsigned len)
{
unsigned char *end;
for(end=s+len-len%3; s<end; s=s+3 )
printf("%x ", s[0]|s[1]<<8 | s[2]<<16);
putchar('\n');
}
这个例子是如何工作的:
int main(void)
{
unsigned char s[] = "\x12\x34\x56\x78\x9A\xBC\xDE\xFF";
print3bytes(s, 8);
return 0;
}
谁能解释一下?
【问题讨论】:
-
你到底有什么不明白的?
-
这个:s[0] | s[1]
-
其中哪一部分你不明白?
标签: c operators bit-manipulation