在C#中将十六进制字符串转换为整数
给定一个十六进制字符串,我们必须将其转换为整数。
从十六进制字符串转换为整数
假设您有一个字符串“3039”,它是一个整数12345的十六进制值,但是该值是字符串格式,并且您想要它的整数(数字)值。
要将十六进制字符串转换为整数–我们使用Convert.ToInt32()方法。
语法:
Convert.ToInt32(input_string, Input_base);
这里,
input_string是包含字符串格式的十六进制数字的输入。
input_base是输入值的基数-对于十六进制值,它将为16。
示例
Input: "3039" Function call: Convert.ToInt32(input, 16); Output: 12345 Input: "303a" Function call: Convert.ToInt32(input, 16); Output: 12346 Input: "303ag" //不是“g”不是有效的十六进制数字 Function call: Convert.ToInt32(input, 16); Output: Exception
码:
using System; using System.Text; namespace ConsoleApplication3 { class Program { static void Main(string[] args) { //十六进制数作为字符串 string input = "3039"; int output = 0; //转换为整数 output = Convert.ToInt32(input, 16); //输出值 Console.WriteLine("Integer number: " + output); //按ENTER退出 Console.ReadLine(); } } }
输出结果
Integer number: 12345
异常处理示例
码:
using System; using System.Text; namespace ConsoleApplication3 { class Program { static void Main(string[] args) { string input = ""; int output = 0; try { //输入字符串 Console.Write("Enter a hexadecimal number: "); input = Console.ReadLine(); //转换为整数 output = Convert.ToInt32(input, 16); Console.WriteLine("Integer number: " + output); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } //按ENTER退出 Console.ReadLine(); } } }
输出结果
First run with valid input: Enter a hexadecimal number: 3039 Integer number: 12345 Second run with valid input: Enter a hexadecimal number: 303a Integer number: 12346 Third run with invalid input: Enter a hexadecimal number: 303ag System.FormatException: Additional non-parsable characters are at the end of the string. at System.ParseNumbers.StringToInt(String s, Int32 radix, Int32 flags, Int32* currPos) at System.Convert.ToInt32(String value, Int32 fromBase) at ConsoleApplication3.Program.Main(String[] args) in F:\Ankur\SerialPort\Con soleApplication3\ConsoleApplication3\Program.cs:line 19