char buffer[5] ; 
DWORD number ;buffer字符串里面的值为{0x64,0x32,0x00,0x00},当然,你也可以写成{"d","2"}
我现在想把buffer里面的值赋给number,也就是说,赋值完成后,number的值为0x6432,有哪个函数可以完成这一功能吗,atoi估计是不能了

解决方案 »

  1.   

    for(intchar buf[] = {0x64, 0x32, 0x00, 0x00};

    BYTE high = buf[0];
    BYTE low = buf[1];
    DWORD number = MAKEWORD(low, high);
    CString str;
    str.Format(_T("0x%x"), number);
    AfxMessageBox(str);
      

  2.   

    的确是个方法,不过如果我的buffer[]={0x64,0x32,0x78,0x89}就没办法了
      

  3.   

            char buffer[]={0x64,0x32,0x78,0x89};
    DWORD number;
            number = *(DWORD *)buffer;
    //number = ntohl(number);
    number = ((number >> 24) & 0x000000FF) | ((number >> 8) & 0x0000FF00) | ((number << 8) & 0x00FF0000) | ((number << 24) & 0xFF000000);