gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 01:22:00 25 4
gpt4 key购买 nike

我有一个 C 语言程序,可以将频率表写入二进制文件。频率表是一个数组,其中填充了包含一个 int 和一个 char 的结构。

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

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

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

有没有一种不用特殊库就可以在 C 语言中做到这一点的简单方法?

最佳答案

是的,在 C 中有一种非常简单的方法。您可以将一个 char(在所有平台上都是一个字节)与一个最大 24 位的 int 组合起来,方法是通过移位char 左边 24 位:

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

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

uint32_t fromFile;
uint32_t myCount = fromFile & 0xFFFFFF;
char myChar = (fromFile >> 24) & 0xFF;

关于C - 仅使用 3 个字节将整数写入二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40093118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com