use*_*312 3 c endianness bitwise-operators
有人可以帮我解释一下代码吗?
为何32位UINT?
为什么0xff?
这里有4个正确的转变吗?
int writeUINT32little(FILE *f, UINT32 i)
{
int rc;
rc = fputc((i & 0xff), f);
if (rc == EOF) return rc;
rc = fputc(((i >> 8) & 0xff), f);
if (rc == EOF) return rc;
rc = fputc(((i >> 16) & 0xff), f);
if (rc == EOF) return rc;
return fputc(((i >> 24) & 0xff), f);
}
Run Code Online (Sandbox Code Playgroud)
这需要一个32位无符号整数,并将其输出到一个文件,逐字节,最低有效字节(即little-endian).
0xff是以255十进制或11111111二进制形式写入的十六进制方式.并且&是按位and功能.放在一起,(i & 0xff)屏蔽整数的最低有效字节.
然后,移位将整个事物移位8位,并重复该过程以打印下一个字节.
| 归档时间: |
|
| 查看次数: |
401 次 |
| 最近记录: |