Gewusst wie: Konvertieren zwischen Hexadezimalzeichenfolgen und numerischen Typen (C#-Programmierhandbuch)How to: Convert Between Hexadecimal Strings and Numeric Types (C# Programming Guide)

In diesen Beispielen wird gezeigt, wie Sie die folgenden Aufgaben ausführen:These examples show you how to perform the following tasks:

  • Abrufen des Hexadezimalwerts jedes Zeichens in einer ZeichenfolgeObtain the hexadecimal value of each character in a string.

  • Abrufen des char, das jedem Wert in einer Hexadezimalzeichenfolge entsprichtObtain the char that corresponds to each value in a hexadecimal string.

  • Konvertieren eines hexadezimalen string in intConvert a hexadecimal string to an int.

  • Konvertieren eines hexadezimalen string in floatConvert a hexadecimal string to a float.

  • Konvertieren eines Byte-Arrays in einen hexadezimalen stringConvert a byte array to a hexadecimal string.

BeispielExample

In diesem Beispiel wird der Hexadezimalwert jedes Zeichens in einem string ausgegeben.This example outputs the hexadecimal value of each character in a string. Zuerst wird der string in ein Array von Zeichen aufgegliedert.First it parses the string to an array of characters. Danach wird ToInt32(Char) auf jedem Zeichen aufgerufen, um dessen numerischen Wert zu erhalten.Then it calls ToInt32(Char) on each character to obtain its numeric value. Abschließend wird die Zahl als Hexadezimaldarstellung in einem string formatiert.Finally, it formats the number as its hexadecimal representation in a string.

string input = "Hello World!";
char[] values = input.ToCharArray();
foreach (char letter in values)
{
    // Get the integral value of the character.
    int value = Convert.ToInt32(letter);
    // Convert the decimal value to a hexadecimal value in string form.
    string hexOutput = String.Format("{0:X}", value);
    Console.WriteLine("Hexadecimal value of {0} is {1}", letter, hexOutput);
}
/* Output:
   Hexadecimal value of H is 48
    Hexadecimal value of e is 65
    Hexadecimal value of l is 6C
    Hexadecimal value of l is 6C
    Hexadecimal value of o is 6F
    Hexadecimal value of   is 20
    Hexadecimal value of W is 57
    Hexadecimal value of o is 6F
    Hexadecimal value of r is 72
    Hexadecimal value of l is 6C
    Hexadecimal value of d is 64
    Hexadecimal value of ! is 21
 */

BeispielExample

In diesem Beispiel wird ein string von Hexadezimalwerten analysiert, und die den einzelnen Hexadezimalwerten entsprechenden Zeichen werden ausgegeben.This example parses a string of hexadecimal values and outputs the character corresponding to each hexadecimal value. Zuerst wird die Split(Char[])-Methode aufgerufen, um jeden Hexadezimalwert als einzelnen string in einem Array abzurufen.First it calls the Split(Char[]) method to obtain each hexadecimal value as an individual string in an array. Anschließend wird ToInt32(String, Int32) aufgerufen, damit der Hexadezimalwert in einen Dezimalwert konvertiert, der als int dargestellt wird. Es werden zwei verschiedene Arten gezeigt, um das diesem Zeichencode entsprechende Zeichen abzurufen.Then it calls ToInt32(String, Int32) to convert the hexadecimal value to a decimal value represented as an int. It shows two different ways to obtain the character corresponding to that character code. Die erste Methode verwendet ConvertFromUtf32(Int32), wodurch das Zeichen zurückgegeben wird, das dem ganzzahligen Argument als string entspricht.The first technique uses ConvertFromUtf32(Int32), which returns the character corresponding to the integer argument as a string. Die zweite Methode wandelt int explizit in ein char um.The second technique explicitly casts the int to a char.

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);
}
/* Output:
    hexadecimal value = 48, int value = 72, char value = H or H
    hexadecimal value = 65, int value = 101, char value = e or e
    hexadecimal value = 6C, int value = 108, char value = l or l
    hexadecimal value = 6C, int value = 108, char value = l or l
    hexadecimal value = 6F, int value = 111, char value = o or o
    hexadecimal value = 20, int value = 32, char value =   or
    hexadecimal value = 57, int value = 87, char value = W or W
    hexadecimal value = 6F, int value = 111, char value = o or o
    hexadecimal value = 72, int value = 114, char value = r or r
    hexadecimal value = 6C, int value = 108, char value = l or l
    hexadecimal value = 64, int value = 100, char value = d or d
    hexadecimal value = 21, int value = 33, char value = ! or !
*/

BeispielExample

Diese Beispiel stellt eine andere Möglichkeit dar, eine hexadezimale string in einen Integer zu konvertieren, indem die Parse(String, NumberStyles)-Methode aufgerufen wird.This example shows another way to convert a hexadecimal string to an integer, by calling the Parse(String, NumberStyles) method.

string hexString = "8E2";
int num = Int32.Parse(hexString, System.Globalization.NumberStyles.HexNumber);
Console.WriteLine(num);
//Output: 2274

BeispielExample

Das folgende Beispiel zeigt, wie eine hexadezimale string in float konvertiert wird, indem die System.BitConverter-Klasse und die Int32.Parse-Methode verwendet wird.The following example shows how to convert a hexadecimal string to a float by using the System.BitConverter class and the Int32.Parse method.


string hexString = "43480170";
uint num = uint.Parse(hexString, System.Globalization.NumberStyles.AllowHexSpecifier);

byte[] floatVals = BitConverter.GetBytes(num);
float f = BitConverter.ToSingle(floatVals, 0);
Console.WriteLine("float convert = {0}", f);

// Output: 200.0056            

BeispielExample

Das folgende Beispiel zeigt, wie Sie ein Byte-Array mithilfe der System.BitConverter-Klasse in eine hexadezimale Zeichenfolge konvertieren.The following example shows how to convert a byte array to a hexadecimal string by using the System.BitConverter class.

byte[] vals = { 0x01, 0xAA, 0xB1, 0xDC, 0x10, 0xDD };

string str = BitConverter.ToString(vals);
Console.WriteLine(str);

str = BitConverter.ToString(vals).Replace("-", "");
Console.WriteLine(str);

/*Output:
  01-AA-B1-DC-10-DD
  01AAB1DC10DD
 */

Siehe auchSee Also

Standardmäßige ZahlenformatzeichenfolgenStandard Numeric Format Strings
TypenTypes
Gewusst wie: Bestimmen, ob eine Zeichenfolge einen numerischen Wert darstelltHow to: Determine Whether a String Represents a Numeric Value