1、十六进制数是不是一般保存在字符串里?2、有没有函数直接将十六进制转换成十进制?3、如果在窗口的控件CEdit中输入的是十六进制,那用哪个方案得到并将它转换成十进制?

解决方案 »

  1.   

    http://expert.csdn.net/Expert/topic/2361/2361562.xml?temp=.9737818
      

  2.   

    计算机内部不存在转换的问题,因为所有.数据都是以二进制保存的,只是显示给用户看的时候有几种不同的表现形式罢了。  比如可以将unsinged long 类型数a显示为 2进制、10进制、16进制,用字符形式显示:
    char buf[100];
    _ultoa( a, buf, 10);//此处10表示用10进制,可改为2、8、16等以表示相应的进制
    AfxMessageBox(buf,MB_OK,0);
      

  3.   

    1、16进制只是一种显示的方式,不存在什么一般保存在字符串的说法,计算机是以二进制运作的,用16进制只是因为方便而已。
    2、如果是显示的话,字符串处理函数中格式化函数可以帮你   sprintf、CString::Format 等等3、只有自已写个函数,要看你要把多大的数转过来了,小一点可以用很多函数,大了可就要用大数运算库了  象 Freelib
      

  4.   


    CString str ="1e";
    char    *pszStopScan;
    long lRet = strtol(str,&pszStopScan,16);