原本是十六进制表示的  0xFFFFF434这个是-3019用DWORD  怎么表示出来呢?互相是怎么转化的?

解决方案 »

  1.   

    http://topic.csdn.net/t/20050825/14/4231036.html输入为一串十六进制字符串,返回十进制int数  
      如"0xAF60",你先要自己转换一下去掉"0x"变成"AF60",再输入  
       
      static   int   xatoi   (char   *cp)  
      {  
      int   val;  
       
      val   =   0;  
      while   (*cp)  
      {  
      if   (*cp   >=   'a'   &&   *cp   <=   'f')  
      val   =   val   *   16   +   *cp   -   'a'   +   10;  
      else   if   (*cp   >=   'A'   &&   *cp   <=   'F')  
      val   =   val   *   16   +   *cp   -   'A'   +   10;  
      else   if   (*cp   >=   '0'   &&   *cp   <=   '9')  
      val   =   val   *   16   +   *cp   -   '0';  
      else  
      break;  
      cp++;  
      }  
      return   val;  
      }
      

  2.   

    楼上的方法和我以前的方法一样笨。
    我现在用这个方法://16进制字符串转10进制数字,方法一:
    CString strHex = ???; // 16进制字符串
    int nDec;// 10进制数字
    sscanf(strHex, _T("%X"), %nDec);//16进制字符串转10进制数字,方法二:
    CString strHex = ???; // 16进制字符串
    int nDec;// 10进制数字
    nDec = _tcstoul(strHex, NULL, 16);
      

  3.   

    10进制数字转16进制字符串,方法一:
    CString strHex = _T(""); // 16进制字符串 
    int nDec = 123;// 10进制数字 
    strHex.Format(_T("%X"), nDec);
      

  4.   

    我现在用这个方法NET页面刷新方法总结
      

  5.   

    原本是十六进制表示的  0xFFFFF434 这个是-3020 
      

  6.   

    负数表示:先取正;如-12 --> 12
    二进制:1100
    取反:(默认是16位,编译器不同就不一样)1111111111110011
    加1:1111111111110100
    十六进制:0X0FFF4;
      

  7.   

    不好意思,我在2楼的代码写错了一个%(把&错写为%了),怪不得我说我的回帖没反应呢。正确的如下,已验证通过,完成符合楼主的要求: //16进制字符串转10进制数字,方法一: 
    CString strHex = _T("0xFFFFF434"); // 16进制字符串 
    DWORD dwDec = 0; // 10进制数字 
    sscanf(strHex, _T("%X"), &dwDec);

    CString str;
    str.Format(_T("%d"), dwDec);
    MessageBox(str); // =-3020,不是楼主说的-3019 //16进制字符串转10进制数字,方法二: 
    CString strHex = _T("0xFFFFF434"); // 16进制字符串 
    DWORD dwDec;// 10进制数字 
    dwDec = _tcstoul(strHex, NULL, 16);

    CString str;
    str.Format(_T("%d"), dwDec);
    MessageBox(str); // =-3020,不是楼主说的-3019 //10进制数字转16进制字符串,方法一: 
    CString strHex = _T(""); // 16进制字符串 
    DWORD dwDec = -3020; // 10进制数字 
    strHex.Format(_T("0x%X"), dwDec);
    MessageBox(strHex); // ="0xFFFFF434"
      

  8.   

    我用强制转换
    (int)  (dword)解决了!