怎样提取二进制文件中的实数
已知长度为8,低字节在前,高字节在后,二进制文件中显示为 B5 9D B4 2C 3D B0 43 C0 怎样把它转换成double。
谢谢了。
例子:整数我是这样提取的char c[4] 的内容为 B5 B6 B7 B8
BYTE a0 = c[0];
BYTE a1 = c[1];
BYTE a2 = c[2];
BYTE a3 = c[3];
int res = a0 + a1<<8 + a2<<16 + a3<<24;
这样能得到正确的结果,但双精度浮点数不知道怎样提取。
[解决办法]
纠正上帖:
double d;
FILE *f;
f=fopen(...,"rb");
...
fread(&d,8,1,f);
...
fclose(f);
[解决办法]
char s[8];
读取8个字节
double d = *( ( double * )( s ) );
[解决办法]
B5 9D B4 2C 3D B0 43 C0
double a;
char * p = &a;
p[0] = 0xb5;
p[1] = 0x9d;
...
p[7] = 0xc0;
// a is there
[解决办法]
通过地址取值呗