Konvertera mellan hexadecimala strängar och numeriska typer (C#-programmeringsguide)
De här exemplen visar hur du utför följande uppgifter:
Hämta hexadecimalt värde för varje tecken i en sträng.
Hämta det tecken som motsvarar varje värde i en hexadecimal sträng.
Konvertera ett hexadecimalt
string
till en int.Konvertera ett hexadecimalt
string
till en float.Konvertera en bytematris till ett hexadecimalt
string
.
Exempel
Det här exemplet matar ut hexadecimalt värde för varje tecken i en string
. Först parsar den string
till en matris med tecken. Sedan anropas ToInt32(Char) varje tecken för att hämta dess numeriska värde. Slutligen formateras talet som dess hexadecimala representation i en 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 integer value to a hexadecimal value in string form.
Console.WriteLine($"Hexadecimal value of {letter} is {value:X}");
}
/* 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
*/
Det här exemplet parsar ett string
av hexadecimala värden och matar ut tecknet som motsvarar varje hexadecimalt värde. Först anropas metoden Split(Char[]) för att hämta varje hexadecimalt värde som en individ string
i en matris. Sedan anropas ToInt32(String, Int32) för att konvertera hexadecimalt värde till ett decimalvärde som representeras som en int. Den visar två olika sätt att hämta tecknet som motsvarar den teckenkoden. Den första tekniken använder ConvertFromUtf32(Int32), som returnerar tecknet som motsvarar heltalsargumentet som en string
. Den andra tekniken kastar int
explicit till ett tecken.
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 !
*/
Det här exemplet visar ett annat sätt att konvertera ett hexadecimalt string
till ett heltal genom att anropa Parse(String, NumberStyles) metoden.
string hexString = "8E2";
int num = Int32.Parse(hexString, System.Globalization.NumberStyles.HexNumber);
Console.WriteLine(num);
//Output: 2274
I följande exempel visas hur du konverterar ett hexadecimalt string
till en flyttal med hjälp System.BitConverter av klassen och UInt32.Parse metoden.
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
I följande exempel visas hur du konverterar en bytematris till en hexadecimal sträng med hjälp System.BitConverter av klassen .
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
*/
I följande exempel visas hur du konverterar en bytematris till en hexadecimal sträng genom att anropa metoden Convert.ToHexString som introducerades i .NET 5.0.
byte[] array = [0x64, 0x6f, 0x74, 0x63, 0x65, 0x74];
string hexValue = Convert.ToHexString(array);
Console.WriteLine(hexValue);
/*Output:
646F74636574
*/