gpt4 book ai didi

c - 二进制 0000 到 FFFF 使用 C

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

我正在尝试使用 C 进行编程以将二进制数据写入 .bin 文件,然后迭代以从 0000 写入到 FFFF。我想我会使用带有“wb”标签的 fopen,然后能够写入二进制数据,但我不确定如何使用 C 从 0000 迭代到 FFFF。感谢您的帮助。

现在这是我的代码:

#include <stdio.h>
#include <stdlib.h>

int main()
{
FILE *f = fopen("binary.bin", "wb");
unsigned long i;

//if(f == NULL) { ...error handling... }

for(i = 0x0000; i <= 0xFFFF; i++){
// Write something to the file, e.g. the 16-bit (2 byte) value of "i"
unsigned short someData = i;
fwrite(&someData, 1, 2, f);
}

fclose(f);
return 0;
//printf("Hello World\n");
getchar();
}

这将输出 00 00 01 00 02 00 ...

现在是我的问题。这不是应该读出00 00 00 01 00 02...开头不是应该多一个'00'吗?

此外,我一直在尝试查看如何复制和扩展它,从而使其成为 0000 0000 0001 0001 等?[更新:我刚刚复制了 fwrite 行并再次执行,它解决了这个问题]

最佳答案

这是一个将一些二进制数写入文件的简单示例。

FILE *f = fopen("yourfile", "wb");

if(f == NULL) { ...error handling... }

for(unsigned long i = 0x0000; i <= 0xFFFF; ++i)
{
// Write something to the file, e.g. the 16-bit (2 byte) value of "i"
unsigned short someData = i;
fwrite(&someData, 1, 2, f);
}

fclose(f);

请注意,此处的变量 i 必须大于 16 位,这样它才不会回绕(请参阅我对其他答案的评论)。 long 类型保证至少 32 位的大小。

关于c - 二进制 0000 到 FFFF 使用 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2177199/

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