2012-03-22 3 views
0

У меня есть текстовое поле в моей форме. Я хочу написать «0x31» в качестве строки в текстовое поле, а затем, когда я нажал кнопку, я хочу преобразовать эту строку в 0x31 в виде шестнадцатеричного значения.Преобразование шестнадцатеричной строки в ее числовые значения в C#

Как преобразовать эту строку в шестнадцатеричное значение?

ответ

2
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

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

Шестнадцатеричный - это просто представление значения, это не само значение.

Эта страница расскажет вам все, что вам нужно знать о разборе и отображения гекс в C#

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

1

Значение строки гекс изображавшая стоимость. Фактическое строковое значение может быть преобразовано во все, что вам нравится (float, int и т. Д.) Существует несколько способов сделать the conversion. Простой пример:

// convert to int from base 16 
int value = Convert.ToInt32(hex, 16); 
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); 
} 
1

Обратите внимание, что шестигранной просто представление значения - так что вы действительно спрашиваете, как вы можете разобрать значение из строки - это сделать например:

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

val теперь содержит int с шестнадцатеричным значением 0x31.

Смежные вопросы