十六进制转十进制问题

来源:百度知道 编辑:UC知道 时间:2024/06/04 05:42:49
这是UltraEdit-32读出的一行数据
49 7E 31 01 D4 87 02 00 F5 87 02 00 B5 81 02 00
49 7E 31 01 D4 87 02 00的值是20020809是咋样算出来的

前四个字节49 7E 31 01作为一个32位的整型数,十六进制是01317E49. 如果愿意手工转换成十进制,结果就是20020809.
如果编个程序,可以这样做(假设存放这些数据的文件名是D:\TEMP\TT.DAT)

#include <stdio.h>

main()
{
long x[4];
FILE *fp = fopen("D:\\TEMP\\TT.DAT", "rb");
fread(x, 4, sizeof(long), fp);
printf("%ld %ld %ld %ld\n", x[0], x[1], x[2], x[3]);
}

运行结果应该是:20020809 165844 165877 164277