• 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”);
  • 相关阅读:
    字的传送
    mov 寄存器,段寄存器
    c语言中利用三维数组计算成绩总分数
    python中break语句
    c语言中求课程总分、平均分。学生总分及平均分
    python中assert语句
    python中random模块引入随机数
    python中实现列表的倒序排列
    c语言中求两个矩阵的乘积
    python的严格缩进可以避免else悬挂
  • 原文地址:https://www.cnblogs.com/lidabo/p/3553133.html
Copyright © 2020-2023  润新知