16進制字符串轉數字(C/C++,VB/VB.net,C#)


這個問題看是很簡單,但是在不同語言中實現的方式卻千差萬別,如果不知道方法,還真是麻煩,我就是在 C# 中遇到該問題,讓我費了很大的周折,才在 msdn 查到。
一、 16 進制字符串轉數字
     1 C/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;   
   }  
   2 VB
   LngHex=val(“&H12AB”)
 3 VB.net
LngHex=val(“&H12AB”)
 4 C#
     lngHex=Convert.ToInt32(“0x12AB”,16);   // 也可以直接寫 12AB
    Msdn 上有一個條目:“如何:將十六進制字符串轉換為數字”
    使用 ToInt32 ,第一個參數為要轉換的字符串,第二個參數表示數字的基數,十六進制為 16
    此外不僅支持 16 進制, 2 8 10 進制都支持 
 
二、數字轉 16 進制字符串
1 C/C++
Printf(“%x”,1234);
2 VB
Hex(1234)
3 VB.net
Hex(1234)
Int(1234).ToString(“X4”)
4 C#
((int)1234).ToString(“X4”);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM