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”);

时间: 2024-12-21 10:52:50

16进制字符串转数字(C/C++,VB/VB.net,C#)的相关文章

c语言-如何将数字字符串转为16进制字符串?

问题描述 如何将数字字符串转为16进制字符串? 请教一个示例:如何将数字字符串转为16进制字符串?字符串:char str[20]="1234567890123456";将中间的"789012"转换为16进制的"0C0A14":最后str=""1234560C0A143456"" 如果有描述不清的地方,请指出.多谢! 解决方案 你先用字符串截取到 比如strstr等,""789012&q

C语言:将16进制字符串转化为int类型值

将16进制字符串值转换为 int 整型值   此例中用 "1de" 作为测试字符串,实现代码如下:   [cpp] view plaincopy   #include <stdio.h>   #include <stdlib.h>   #include <string.h>   #include <ctype.h>      /*   * 将字符转换为数值   * */   int c2i(char ch)   {           /

java-两个很长的16进制字符串怎么进行异或运算?

问题描述 两个很长的16进制字符串怎么进行异或运算? str1=""0d1fe39e573488cf"" str2=""0d1fe39e573488ee595acd5c6d4ce0f445476794"" 怎不进行异或运算? 由于太长不能转化成long 解决方案 每2个一组,存入数组,然后循环异或. 解决方案二: byte[] array1 = str1.getBte();byte[] array2 = str2.getByt

ios-IOS 如何把16进制字符串转换成byte 求各位大神 最好能有代码

问题描述 IOS 如何把16进制字符串转换成byte 求各位大神 最好能有代码 IOS 如何把16进制字符串转换成byte?求各位大神 最好能有代码 解决方案 字符串由字符组成,每个字符都占用一定的字节,我记得是4还是多少,这是c语言底层的算法,应该还有其他算法

vb 串口发送16进制-Vb将文本框里输入的十进制数据按chr(13)分割,然后转换成&amp;amp;amp;h+16进制字符串形式

问题描述 Vb将文本框里输入的十进制数据按chr(13)分割,然后转换成&h+16进制字符串形式 例如文本框里输入253chr(13)255chr(13),要求输出结果书"&HFD" "&HFF",看了好多算法,但是还是没有研究出来. 我自己做的结果如下 Private Sub Text2_KeyPress(KeyAscii As Integer) Dim tmp() As String Dim aa As String * 1 Dim rd

给串口发送16进制字符串命令和包括16进制命令转换为字节数组

using System;using System.Collections.Generic;using System.Text;using System.IO.Ports;namespace SerialPortControl{    public class PortControl    {         /// <summary>        /// 向端口中发送命令.        /// </summary>        /// <param name=&quo

关于byte 进制 float String 编码 16进制字符串转16进制byte的问题

首先 只有String才与编码有关: byte与其他类型转换时,要注意大端点还是小端点, 编码: Ascii Unicode gbk utf-8等等  byte 占 8位 可由两个16进制数(0xff)组成,一个16进制占4位,也可由8位二进制数组成等等,与编码没关系,但可用2进制表示,也可由其他进制表示. "0xff"这样的16进制字符串转换成16进制byte String[] s="0X0C 0X03 0X00 0X04 0X00 0X02 0X84 0XD7"

php中将图片gif,jpg或mysql longblob或blob字段值转换成16进制字符串_php技巧

数据库脚本: -- -------------------------------------------------------- -- -- 表的结构 `highot_attachment` -- 复制代码 代码如下: CREATE TABLE IF NOT EXISTS `highot_attachment` ( `id` int(11) NOT NULL auto_increment, `phone_number_id` int(11) NOT NULL COMMENT 'phone_n

16进制字符串-C# 16进制的字符串转byte数组

问题描述 C# 16进制的字符串转byte数组 如字符串:0xFF 0x01 0x01 0x02 0xEE 转换成byte byte[0]=0xFF; byte[1]=0x01