将十六进制字符串转换为C#中的数值

时间:2012-03-22 10:12:09

标签: c# string hex

我的表单上有一个文本框。我想将“0x31”作为字符串写入我的文本框,然后当我单击一个按钮时,我想将此字符串转换为0x31作为十六进制值。

如何将此字符串转换为十六进制值?

6 个答案:

答案 0 :(得分:5)

int i = Convert.ToInt32("0x31", 16);
Console.WriteLine("0x" + i.ToString("X2"))

答案 1 :(得分:5)

string hexValues = "48 65 6C 6C 6F 20 57 6F 72 6C 64 21";
string[] hexValuesSplit = hexValues.Split(' ');
foreach (String hex in hexValuesSplit)
{
    // Convert the number expressed in base-16 to an integer.
    int value = Convert.ToInt32(hex, 16);
    // Get the character corresponding to the integral value.
    string stringValue = Char.ConvertFromUtf32(value);
    char charValue = (char)value;
    Console.WriteLine("hexadecimal value = {0}, int value = {1}, char value = {2} or {3}",
                    hex, value, stringValue, charValue);
}

示例来自:http://msdn.microsoft.com/en-us/library/bb311038.aspx

答案 2 :(得分:2)

十六进制只是一个值的表示,它本身不是一个值。

此页面将告诉您在C#

中解析和显示十六进制所需了解的所有信息

http://msdn.microsoft.com/en-us/library/bb311038.aspx

答案 3 :(得分:2)

请注意,十六进制只是一个值的表示 - 所以您真正要问的是如何从字符串中解析一个值 - 这样做:

int val = int.Parse("0x31", NumberStyles.HexNumber);

val现在包含一个十六进制值为0x31的int。

答案 4 :(得分:1)

字符串十六进制值是值的表示。实际的字符串值可以转换为您喜欢的任何值(float,int等) 有几种方法可以the conversion。简单的例子:

// convert to int from base 16
int value = Convert.ToInt32(hex, 16);

答案 5 :(得分:1)

首先要清理:字符串是十六进制格式,当你将它转换为一个值时,它只是一个数值,它不是十六进制的。

Int32.Parse方法与NumberStyle.HexNumber说明符一起使用:

string input = "0x31";

int n;
if (input.StartsWith("0x")) {
  n = Int32.Parse(input.Substring(2), NumberStyles.HexNumber);
} else {
  n = Int32.Parse(input);
}