• 16进制字符串转数字(C/C++,VB/VB.net,C#)


    这个问题看是很简单,但是在不同语言中实现的方式却千差万别,如果不知道方法,还真是麻烦,我就是在C#中遇到该问题,让我费了很大的周折,才在msdn查到。
    一、16进制字符串转数字
         1C/C++
               I、最简单的办法:sscanf(“12AB”,,”%x”,&lngHex);   //字符也可以为”0x12AB”
          II、有个朋友,自行编写函数实现了该功能,据说速度比sscanf快:
          BOOL   HexToDec(   LPCTSTR   shex,int&   idec   )   
         {   
          int   i,mid;   
          int   len   =   lstrlen(   shex   );       
          if(   len>8   )     return   FALSE;      
          mid   =   0;   idec   =   0;   
          for(   i=0;i<len;i++   )   
          {   
              if(   shex[i]>='0'&&shex[i]<='9'   )   mid   =   shex[i]-'0';   
              else   if(   shex[i]>='a'&&shex[i]<='f'   )   mid   =   shex[i]   -'a'   +10;   
              else   if(   shex[i]>='A'&&shex[i]<='F'   )   mid   =   shex[i]   -'A'   +10;   
              else   return   FALSE;       
              mid   <<=   ((len-i-1)<<2);   
              idec   |=   mid;       
          }       
          return   TRUE;   
       }  
       2VB
       LngHex=val(“&H12AB”)
     3VB.net
    LngHex=val(“&H12AB”)
     4C#
         lngHex=Convert.ToInt32(“0x12AB”,16);   //也可以直接写12AB
       Msdn上有一个条目:“如何:将十六进制字符串转换为数字”
       使用ToInt32,第一个参数为要转换的字符串,第二个参数表示数字的基数,十六进制为16
       此外不仅支持16进制,2810进制都支持 
     
    二、数字转16进制字符串
    1C/C++
    Printf(“%x”,1234);
    2VB
    Hex(1234)
    3VB.net
    Hex(1234)
    Int(1234).ToString(“X4”)
    4C#
    ((int)1234).ToString(“X4”);
  • 相关阅读:
    jquery ajax loading效果
    php中count 多维数组长度统计实现方法
    jquery 中Map、each的应用
    转:php获取网页内容方法总结
    经典JavaScript正则表达式实战
    JQuery this 和 $(this) 的区别
    Windows Server 2003 的 Boot.ini 文件的/3GB开关选项
    用ghost装双系统(装03,xp系统)
    Possible memory leak with ReportViewer.RefreshReport() ReportViewer内存回收缺陷
    添加IIS出错,提示缺少CONVLOG.exe文件
  • 原文地址:https://www.cnblogs.com/lidabo/p/3553133.html
Copyright © 2020-2023  润新知