在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