gpt4 book ai didi

c - fwrite 文件输出错误

转载 作者:太空宇宙 更新时间:2023-11-04 08:36:31 24 4
gpt4 key购买 nike

我正在尝试将整数的二进制表示形式写入文件,接受我将在文件中获得十六进制格式,但是我没有得到预期的结果。

uint32_t a = 1;
FILE * file = fopen("out.txt", "ab+");
fwrite(&a, sizeof(uint32_t), 1, file );

我希望得到(小端)

1000 0000

但是我进入了文件

0100 0000 

运行这段代码的机器是 Ubuntu linux 32 位(小端)。有没有人可以解释为什么会这样,文件的内容是否与我机器上的整数表示一致?干杯。

最佳答案

假设每组两位数都是一个字节,那么您看到的是正确的:

01 00 00 00

Little endian 命令字节,不是nybbles within 字节。所以你拥有的是:

01 00 00 00
|| || || ||
|| || || == -> 0 * 256 * 256 * 256
|| || == ----> 0 * 256 * 256
|| == -------> 0 * 256
== ----------> 1

关于c - fwrite 文件输出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26029430/

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