文件内容 (十六进制):
00 20 00 10 1A 01 00 00 10 00 10 00 文件说明:
00 20 00 10 标签 查找用
1A 12      一个整数 表示后面的多少个字节是有效字节
00 00 10 00 10 00 值具体长度由前面连个字节确定实现:
1.找到标签(完成)读取4个字节 然后一个个比较
2.再读取2个字节。。转换为十进制问题所在代码:
   char length[2];
   mFile.Read( length,2);//读取2位 判断值长度 
   ??下面怎么做 才能得到 十六进制 1A 12   所代表的十进制值
我所得到的length【0】=26 length[1]=18  根本不对 是需要继续操作还是有别的做法

解决方案 »

  1.   

    用short .
    short shLen = 0;
    mFile.Read( &length,sizeof(short )); - -#
      

  2.   

    那你就高低位换一下咯有个函数htons,你查下,或者直接用<<  >>移位运算符也可以,还可以使用MAKEWORD宏,将2个BTYE做成一个WORD
      

  3.   

    你写的1A 12是十六进制,转换成十进制就是26 18你的结果没有错。给你个办法,声明一个short(好像占两字节吧)short na;
    mFile.Read( &na,2); //如果有类型错误,则用mFile.Read( reinterpret_cast<void *>(&na),2);
    这样直接就保存到一个十进制数里面去了。不用读到一个字符数组里面再转换。
      

  4.   

    你写的1A 12是十六进制,转换成十进制就是26 18你的结果没有错。给你个办法,声明一个short(好像占两字节吧)short na;
    mFile.Read( &na,2); //如果有类型错误,则用mFile.Read( reinterpret_cast<void *>(&na),2);
    这样直接就保存到一个十进制数里面去了。不用读到一个字符数组里面再转换。
      

  5.   

    2个字节用short类型不就可以了?
    short shVal;
    mFile.Read(&shVal, 2);