我正在阅读别人的代码,但不太明白它是如何工作的。这是三行代码。我想知道 w3 的值是多少:
int w1 = fgetc(fp) & 0xFF;
int w2 = fgetc(fp) & 0xFF;
int w3 = w1 + (w2 << 8);
我知道 fgetc() 从 FILE* fp 返回一个字符,但是当他对值为 0xFF 的字符使用 & 运算符时,我感到很困惑。然后在 w2 上使用按位移位运算符并将其添加到 w1。我不确定我应该期待一个字符还是一个整数。这是一个程序的代码片段,它从文件中读取二进制数据,生成 UV 坐标作为输出。但我不太关心这一点,而更关心上面的代码是如何工作的。
提前感谢您的任何回复。