电竞比分网-中国电竞赛事及体育赛事平台

分享

16進制字符串轉(zhuǎn)數(shù)字(C/C++,VB/VB.net,C#)

 handup 2010-12-31
遇到該問題,讓我費了很大的周折,才在msdn查到。
一、16進制字符串轉(zhuǎn)數(shù)字
     1、C/C++
           I、最簡單的辦法:sscanf(“12AB”,,”%x”,&lngHex);   //字符也可以為”0x12AB”
      II、有個朋友,自行編寫函數(shù)實現(xiàn)了該功能,據(jù)說速度比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上有一個條目:“如何:將十六進制字符串轉(zhuǎn)換為數(shù)字”
   使用ToInt32,第一個參數(shù)為要轉(zhuǎn)換的字符串,第二個參數(shù)表示數(shù)字的基數(shù),十六進制為16。
   此外不僅支持16進制,2,8,10進制都支持
 
二、數(shù)字轉(zhuǎn)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”);

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多