我在C中有一个程序,它将频率表写入二进制文件。 频率表是一个数组,其中包含一个包含int和char的结构。
所以我必须在文件中写一个unsigned int计数器和一个unsigned char字符(多次)。
我知道一个整数通常使用4个字节但是我知道int计数器永远不会大于2 ^ 24-1。
所以我可以使用4个字节将计数器和字符写入文件=>计数器为3个字节,字符为1个字节。这也很容易阅读。
有没有一种简单的方法可以在不使用特殊库的情况下在C中执行此操作?
答案 0 :(得分:4)
是的,在C中有一种非常简单的方法。你可以通过移动{{var discount = (price / listprice).toFixed(2);
来组合所有平台上的一个字节的char
和最多24位的int。 1}}左边24位:
char
当您读回数据时,执行相反的操作:
uint32_t toWrite = (myChar << 24) | myCount;