【发布时间】:2023-06-03 18:27:01
【问题描述】:
在我的项目中,我编写了一个.bin 文件,其中包含无符号短格式(16 位 LE 值)形式的传感器数据。但我得到了错误的价值。你们能建议这里出了什么问题吗?
#include<stdio.h>
int main()
{
FILE *fp = fopen("a.bin","ab");
unsigned short us;
us=123;
fwrite(&us,2,1,fp);
printf("%04X",us); // 0x:007B
us=1234;
fwrite(&us,2,1,fp);
printf("%04X",us); // 0x04D2
us=-3145;
fwrite(&us,2,1,fp);
printf("%04X",us); // 0xF3B7
fclose(fp);
}
在我执行 fwrite() 之后
a.bin
7b 00 d0 bc 04 d0 b8 d0 b7
但我想要
a.bin
7b 00 04 d2 f3 b7
【问题讨论】:
-
“错误值”是什么意思?有什么问题?
-
我想要 a.bin 7b 00 D2 04 B7 F3,但不正确。
-
“不正确”是什么意思?有什么问题?
-
显示您的实际代码。这不会编译(
a.bin缺少引号)。我怀疑你所做的任何“改变”都是问题所在。 -
void main是错误的,顺便说一句。