注册 登录
编程论坛 VC++/MFC

读取.dat文件中每四个字节16进制数并转换成float型再存入另外一个文件中,例如:0x42F0E666 float型为120.45

guogg119 发布于 2012-08-29 23:07, 1606 次点击
读取.dat文件中每四个字节16进制数并转换成float型再存入另外一个文件中,例如:0x42F0E666  float型为120.45
7 回复
#2
guogg1192012-08-30 16:08
哪位大侠赐教呀
#3
guogg1192012-08-30 23:38
哪位大侠帮帮忙呀
#4
ml2325282012-09-02 16:36
0x42F0E666 和120.45是怎么算出来的,存入另外一个文件中你想怎么存。
#5
guogg1192012-09-03 14:31
4楼的你肯定不明白了,浮点数在内存里以四个字节存储,共32位,有符号位,小数位和指数位。
#6
guogg1192012-09-03 14:35
回复 3楼 guogg119
4楼的你肯定不明白了,浮点数在内存里以四个字节存储,共32位,有符号位,小数位和指数位。

可以把四个字节读到cstring对像中,然后用其成员函数转换成float型么?然后存储以浮点型存到.dat中

不知道我说明白没,谢谢帮忙
#7
ml2325282012-09-09 12:18
楼主是不是这个意思:
char pMem[4] = {0x42,0xF0,0xE6,0x66};
float *p = (float*)pMem;
printf("%g",*p);
#8
ml2325282012-09-09 12:29
我测试了下,和你说的是反的   
unsigned char pMem[4] = {0x66,0xE6,0xF0,0x42};
float *p = (float*)pMem;
printf("%g\r\n",*p);
这样输出才是120.45
1