2012-03-22 22 views
0

私のフォームにテキストボックスがあります。私はテキストボックスに文字列として "0x31"を書いて、ボタンをクリックすると、この文字列を0x31に16進数値として変換したいと考えています。C#の数値に16進数の文字列を変換します

どうすればこの文字列を16進値に変換できますか?

答えて

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")) 
1

値。実際の文字列値は好きなものに変換できます(float、intなど) the conversionを実行するにはいくつかの方法があります。簡単な例:

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

まずアップクリアする:文字列は、16進形式であるあなたが値に変換するとき、それは、それは16進数ではありません、ただ数値です。

NumberStyle.HexNumber指定子でInt32.Parseメソッドを使用します。Hexは値の単なる表現であること

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に16進値0x31のintが含まれています。

関連する問題