C# 4.0 如何在c中从字符串转换为十六进制#

C# 4.0 如何在c中从字符串转换为十六进制#,c#-4.0,C# 4.0,我有一个包含十六进制值的字符串,我想知道如何使用c#将该字符串转换为十六进制,给定以下格式 10A 0x10A 0X10A 执行以下操作 public static int ParseHexadecimalInteger(string v) { var r = 0; if (!string.IsNullOrEmpty(v)) { var s = v.ToLower().Replace("0x", ""); var c = CultureI

我有一个包含十六进制值的字符串,我想知道如何使用c#

将该字符串转换为十六进制,给定以下格式

10A
0x10A
0X10A
执行以下操作

public static int ParseHexadecimalInteger(string v)
{
    var r = 0;
    if (!string.IsNullOrEmpty(v))
    {
        var s = v.ToLower().Replace("0x", "");
        var c = CultureInfo.CurrentCulture;
        int.TryParse(s, NumberStyles.HexNumber, c, out r);
    }
    return r;
} 

有几种方法可以做到这一点,这取决于您需要的效率

//ie Convert.ToInt32(“FF”,16)=255

这是转换为Int32的简单方法。您可以使用Byte、Int16、Int64等。如果需要转换为字节数组,您可以一次咀嚼字符串2个字符,将它们解析为字节


如果需要在快速循环或大字节数组中执行此操作,我认为这可能是在纯托管代码中执行此操作的最快方法。不过,对于如何改进它,我总是乐于接受建议。

你的意思是将它转换成整数吗?“十六进制”不是一种类型。没有“十六进制值”这样的东西。数字就是数字,十六进制只是一种表示。Ie:0xff和255是相同的数字