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

简介: 这个问题看是很简单,但是在不同语言中实现的方式却千差万别,如果不知道方法,还真是麻烦,我就是在C#中遇到该问题,让我费了很大的周折,才在msdn查到。 一、16进制字符串转数字      1、C/C++            I、最简单的办法:sscanf(“12AB”,,”%x...
这个问题看是很简单,但是在不同语言中实现的方式却千差万别,如果不知道方法,还真是麻烦,我就是在 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”);
目录
相关文章
|
程序员 C++ Windows
Windows C++ 启动子进程并绑定子进程,主进程结束关闭后自动结束关闭子进程
在Windows平台上主进程启动子进程,并使主进程结束关闭后自动结束关闭子进程
428 0
|
存储 负载均衡 Linux
【Linux 系统】进程间通信(匿名管道 & 命名管道)-- 详解(下)
【Linux 系统】进程间通信(匿名管道 & 命名管道)-- 详解(下)
|
安全 程序员 数据处理
CreateFileMapping函数详解
CreateFileMapping函数详解
|
缓存 Ubuntu 编译器
CMake 常见问题及解决办法
CMake 常见问题及解决办法
5005 0
|
存储 IDE 编译器
Windows 驱动开发环境搭建及 windbg 调试工具安装使用
对于 Windows 驱动开发,在微软官方的文档中其实有很多有用的文档来进行讲解和学习,这里将驱动开发统一归类成了 Windows 硬件开发([https://learn.microsoft.com/zh-cn/windows-hardware/drivers/](https://learn.microsoft.com/zh-cn/windows-hardware/drivers/)),在这个链接的相关文档中能够找到我们所需要的所有内容(由于Windows的不开源,所以我们对于Windows相关的学习要全部依赖官方释放的资料)。
1177 0
|
API Windows
ASIO的post和dispatch方法
ASIO的post和dispatch方法的实现和差别
1631 0
vscode插件快餐教程(8) - LSP文本同步
这一节开始我们介绍下通过LSP进行文本同步的方法。
1790 0
|
存储 自然语言处理 IDE
IME输入法编程心得
原文:IME输入法编程心得 posted @ 2012-11-30 00:42 from [FreedomShe] 自然语言处理的输入法作业成品没有做出来,但不想再在蛋疼的Win32上面耗费时间了,整理文档,记录一下心得,新手再来研究也不会迷路太远。
1323 0