C - 仅使用3个字节将整数写入二进制文件

时间:2016-10-17 18:20:08

标签: c file io binary

我在C中有一个程序,它将频率表写入二进制文件。 频率表是一个数组,其中包含一个包含int和char的结构。

所以我必须在文件中写一个unsigned int计数器和一个unsigned char字符(多次)。

我知道一个整数通常使用4个字节但是我知道int计数器永远不会大于2 ^ 24-1。

所以我可以使用4个字节将计数器和字符写入文件=>计数器为3个字节,字符为1个字节。这也很容易阅读。

有没有一种简单的方法可以在不使用特殊库的情况下在C中执行此操作?

1 个答案:

答案 0 :(得分:4)

是的,在C中有一种非常简单的方法。你可以通过移动{{var discount = (price / listprice).toFixed(2); 来组合所有平台上的一个字节的char和最多24位的int。 1}}左边24位:

char

当您读回数据时,执行相反的操作:

uint32_t toWrite = (myChar << 24) | myCount;