有两种方法:
1. 要转换成有符号整数,使用 Convert.ToInt32(string, 16) ;
要转换成无符号整数,使用 Convert.ToUInt32(string, 16) 。
如果 16 进制的字符串不是以 0x 或 0X 开头,比如“af37”,用这种方法也能进行转换。
2. 要转换成有符号整数,使用 new System.ComponentModel.Int32Converter().ConvertFromString(string) ;
要转换成无符号整数,使用 new System.ComponentModel.UInt32Converter().ConvertFromString(string) 。
注意:
使用这种方法要进行强制类型转换。
如果 16 进制的字符串不是以 0x 或 0X 开头,不能用这种方法。
这两种方法对字母的大小写都不敏感,字符串以0X或0x开头都可以。对于16进制表示中可能出现的字符( 从a 到 f),用大写或小写表示都行,甚至是大小写混杂的表示形式也可以,比如像 0Xa3Bf2 这样的字符串能够被正确处理。
不管使用哪一种方法,都不要忘记要对可能抛出的异常进行处理。
下面给出一段示例代码:
/**************************************************
* Author: HAN Wei
* Author's blog: http://blog.csdn.net/henter/
* Date: April 22nd, 2015
* Description: demonstrate how to convert hexadecimal string
* with leading 0x into integer
**************************************************/
using System;
namespace HexStringConvertToInt
class Program
static void Main(string[] args)
string hexValue = "0Xa3Bf2b10";
// Method 1:
Console.WriteLine("Method 1:");
int decValue = 0;
decValue = Convert.ToInt32(hexValue, 16);
catch (Exception e)
Console.WriteLine("An error occurred while converting!");
Console.WriteLine("Error message: " + e.Message);
Console.ReadLine();
return;
Console.WriteLine("signed integer value: {0}", decValue);
uint uDecValue = 0;
uDecValue = Convert.ToUInt32(hexValue, 16);
catch (Exception e)
Console.WriteLine("An error occurred while converting!");
Console.WriteLine("Error message: " + e.Message);
Console.ReadLine();
return;
Console.WriteLine("unsigned integer value: {0}", uDecValue);
Console.WriteLine();
// Method 2:
Console.WriteLine("------------------------------");
Console.WriteLine("Method 2:");
int iValue = 0;
iValue = (int)new System.ComponentModel.Int32Converter().ConvertFromString(hexValue);
catch (Exception e)
Console.WriteLine("An error occurred while converting!");
Console.WriteLine("Error message: " + e.Message);
Console.ReadLine();
return;
Console.WriteLine("signed integer value: {0}", iValue);
uint uValue = 0;
uValue = (uint)new System.ComponentModel.UInt32Converter().ConvertFromString(hexValue);
catch (Exception e)
Console.WriteLine("An error occurred while converting!");
Console.WriteLine("Error message: " + e.Message);
Console.ReadLine();
return;
Console.WriteLine("unsigned integer value: {0}", uValue);
Console.ReadLine();
此案例分析十六进制值的 string 并输出对应于每个十六进制值的字符。然后,调用 ToInt32(String, Int32)将十六进制值转换为表示为 int 的十进制值。下面的代码将会输出 string 中每个字符(char)的十六进制值。此案例演示了将十六进制 string 转换为整数的另一种方法,即调用 Parse(String, NumberStyles) 方法。//将整数值转换为字符串形式的十六进制值。//将以16为基数表示的数字转换为整数。//获取整数值对应的char。//输出: 2274。
最近在写硬件,发现有一些测试是做 16 进制的字符串,需要把他转换为整形才可以处理。 本文告诉大家如何从 16 进制转整形。
如果输入的是 0xaa 这时转换 int 不能使用 Parse 不然会出现异常
System.FormatException
如果需要转换十六进制就需要使用 Convert 才可以转换
Convert.ToInt32(0xaa, 16)
使用这个方法才可以转换。实际使用这个方法转换不一定需要添加 0x ,直接使用 aa 也是可以
Convert.ToInt32(0xaa, 16) == Convert.ToInt32(aa, 16)
我需要转换的是一个
//十进制转二进制Convert.ToString(69, 2); //69为被转值//十进制转八进制Convert.ToString(69, 8); //69为被转值//十进制转十六进制Convert.ToString(69, 16); //69为被转值//二进制转十进制Convert.ToInt32(”100111101″, 2); //100111101为被转值//八进制转十进制Conver...
C语言中的0x前缀表示一个数字是以十六进制进行表示的,而C#也支持相同的表示方式。C#是一种现代的、通用的、面向对象的编程语言,它继承了C语言的一些特性,并提供了更多的功能和框架来帮助开发者更高效地进行软件开发。通过使用0x前缀,开发者可以直观地表示一个数字是以十六进制进行表示的,这在需要直接操作二进制数据或者进行位运算时非常有用。在C语言中,前缀"0x"表示后面的数字是以十六进制表示的。而C#是一种现代的、通用的、面向对象的编程语言,它继承了C语言的一些特性,但也具有自己的独特之处。
stringstrVal = "0x01F1";
ushort ushOTVal = Convert.ToUInt16(strVal ,16);/*ushOTVal = 497*/
2.数字转换为十六进制字符串
byte btVal = 80;
string strVal0 =btVal .ToString("X2") ;/*strVal0= 0x50*/
ushort ushVal =497;
string strVal =ush...
上一篇看得懂的字节码讲了怎么看字节码,以及字节码中的魔数、版本号和常量池部分,这篇文章接着字节码顺序往下将。请一定要看了上一篇之后再看这一篇,因为有绝对的逻辑关系,不看上一篇这篇基本看不懂。
如果这篇文章中有我没有讲到怎么出现的东西,(比如程序的代码,javap工具,查看字节码的工具等)就是我在上一篇文章中已经提到过的,可以查看我的上一篇文章来找到答案。
上一篇地址 能看懂的字节码-上
C# 中允许在代码中使用 0x 开头的十六进制数字, 以及 0b 开头的二进制数字来表示一个整数. 下面的语法是合理的.
int a = 123;
int b = 0xFF;
int c = 0b10010;
数字转换
将一个数字转换为某进制的字符串, 有两种方式:
// 第一种: 使用 Convert 类. 可转换为 二进制 八进制 十进制 十六进制
Convert.ToString(10, 2); // 二进制, 返回 "1010"
Convert.ToString(10, 8);
byte[] 之初始化赋值用for loop 赋值当然是最基本的方法,不过在C#里面还有其他的便捷方法。1. 创建一个长度为10的byte数组,并且其中每个byte的值为0.byte[] myByteArray = new byte[10];C# 在创建数值型(int, byte)数组时,会自动的把数组中的每个元素赋值为0. (注:如果是string[], 则每个元素为的值为null.2.创建...
由于input(输入数据)是以0x开头的字符串,并不是整型。因而在用时用会由于参数类型不匹配而无法正常运行。而则可正常输出0x8100的10进制值33024.该函数要求参数s为全数字。如“8100”,而对于“0x8100"则不能进行运算。所以对于0x开头的字符串需要先截取数字子串,再进行换算。即可将0x开头的十六进制字符串转换成十进制整数。
在此示例代码中,我们使用Console.ReadLine()函数从用户输入中读取RGB颜色值。接着,我们使用string.Split()函数将RGB颜色值字符串分割为R、G、B三个分量的字符串,并使用int.Parse()函数将它们转换为整数。然后,我们使用位运算和位移操作将R、G、B三个分量的值合并为一个整数,然后使用字符串插值将整数转换为0x颜色代码字符串。需要注意的是,该示例代码假设用户输入的是合法的RGB颜色值。如果用户输入的不是合法的RGB颜色值,例如输入了非数字字符或超出了0~255的范围,将会