zoukankan      html  css  js  c++  java
  • 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”);
  • 相关阅读:
    js计算器
    还差得远
    首个项目结束
    Web前端开发规范文档你需要知道的事
    CSS需要经过多次练习和积累才能掌握
    在Javascript中闭包(Closure)
    Web前端和网站美工
    IE中的条件注释
    计算机类期刊投稿
    忙就一个字
  • 原文地址:https://www.cnblogs.com/lidabo/p/3553133.html
Copyright © 2011-2022 走看看