3字节,HEX,低位在前--------------------定义如下:
unsigned char money[3];
......操作后的,money[3]中的数据每个字段对应的字符为money[0]:241
money[1]:38
money[2]:0----------------
怎么转换成10进制数

解决方案 »

  1.   

    //
    UCHAR byMoney[3]={ 241, 38, 0};
    CHAR szMoney[8];
    _itoa_s ( byMoney[0], szMoney, sizeof(szMoney)/sizeof(CHAR) ,10 );
    //…………你是要转为十进制的字符串吧!
      

  2.   

    这个unsigned char money[3]; 
    中的数据转换成10进制应该是9969
    10进制数不是字符串
      

  3.   


     _itoa_s这个函数,在V6中能用吗?好象不行吧,这个是v2008中的吧
      

  4.   


    unsigned char 最大只能是 255你需要用其他类型的变量保存DWORD dwMoney = money[2]*0x10000 + money[1]*0x100 + money[0];
      

  5.   

    你这个是 小尾数的内存布局在x86 cpu下的话long result = 0;
    memcpy(&result, money, 3);result 里就是你要的数值
      

  6.   

    2楼的是对,但_itoa_s这个在V6找不到
      

  7.   

    2搂是对,只是思路在这个方向上我说的很清楚吧发表于:2009-02-18 12:24:51 楼主 
    3字节,HEX,低位在前 -------------------- 定义如下: 
    unsigned char money[3]; 
    ...... 操作后的,money[3]中的数据每个字段对应的字符为 money[0]:241 
    money[1]:38 
    money[2]:0 ---------------- 
    怎么转换成10进制数 
    =========================================================
    10进制数 10进制数 10进制数 10进制数 
    ======================这个unsigned char money[3]; 
    中的数据 转换成10进制应该是9969 
    10进制数 不是字符串============================
    郁闷——————转换成10进制应该是9969 转换成10进制应该是9969 转换成10进制应该是9969 转换成10进制应该是9969 转换成10进制应该是9969 
      

  8.   

    我服了,直接移位不就解决了嘛...
    money[0]:241 
    money[1]:38 
    money[2]:0 int iResult = money[0] + (money[1] << 8) + (money[2] << 16);
    这样不就可以了嘛