不知道这个16进制怎么转成10进制的

40 40 0c ac 08 31 26 e9(16进制数) 32.099(转换后的10进制数)
40 40 8c cc cc cc cc cd(16进制数) 33.1(转换后的10进制数)
40 F8 73 80 00 00 00 00(16进制数) 100152(转换后的10进制数)
这是flv文件头metadata中的一些数值,后面的十进制数是我用flash读metadatar的方法读出的结果,,可就是不知道是怎么得到的,我想用php重写一个

第1个回答  2009-07-01
这涉及到浮点数的格式了,也就是说双精度型的32.099,在内存中的二进制表示,转换成16进制后就是40 40 0c ac 08 31 26 e9.

在C和C++里面,可以用一个
union A{
double a;
char b[8];
}
这样的共用体,用b来读取数据,用a来显示数据.但是要注意,一般的计算机中多字节数据会采用小端字节顺序排列,40 40 0c ac 08 31 26 e9代表的实际上是十六进制的0xe9 26 31 08 ac 0c 40 40,是反过来的.

PHP我就不知道了.
相似回答