Cara mengonversi antara string heksadesimal dan jenis numerik (Panduan Pemrograman C#)
Contoh-contoh ini menunjukkan kepada Anda cara melakukan tugas-tugas berikut:
Mendapatkan nilai heksadesimal dari setiap karakter dalam string.
Mendapatkan char yang sesuai dengan setiap nilai dalam string heksadesimal.
Mengonversi heksadesimal
string
menjadi int.Mengonversi heksadesimal
string
menjadi float.Mengonversi array byte menjadi heksadesimal
string
.
Contoh
Contoh ini menampilkan nilai heksadesimal dari setiap karakter dalam string
. Pertama, ini menguraikan string
ke array karakter. Kemudian memanggil ToInt32(Char) pada setiap karakter untuk mendapatkan nilai numeriknya. Terakhir, memformat angka sebagai representasi heksadesimalnya dalam 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
*/
Contoh ini menguraikan string
nilai heksadesimal dan menampilkan karakter yang sesuai dengan setiap nilai heksadesimal. Pertama, ini memanggil metode Split(Char[]) untuk mendapatkan setiap nilai heksadesimal sebagai individu string
dalam array. Kemudian memanggil ToInt32(String, Int32) untuk mengonversi nilai heksadesimal ke nilai desimal yang direpresentasikan sebagai int. Ini menunjukkan dua cara berbeda untuk mendapatkan karakter yang sesuai dengan kode karakter tersebut. Teknik pertama menggunakan ConvertFromUtf32(Int32), yang mengembalikan karakter yang sesuai dengan argumen bilangan bulat sebagai string
. Teknik kedua secara eksplisit mentransmisikan int
ke 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 !
*/
Contoh ini menunjukkan cara lain untuk mengonversi heksadesimal string
menjadi bilangan bulat, dengan memanggil metode Parse(String, NumberStyles).
string hexString = "8E2";
int num = Int32.Parse(hexString, System.Globalization.NumberStyles.HexNumber);
Console.WriteLine(num);
//Output: 2274
Contoh berikut menunjukkan cara mengonversi heksadesimal string
menjadi float menggunakan kelas System.BitConverter dan metode UInt32.Parse.
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
Contoh berikut menunjukkan cara mengonversi array byte menjadi string heksadesimal menggunakan kelas System.BitConverter.
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
*/
Contoh berikut menunjukkan cara mengonversi array byte menjadi string heksadesimal dengan memanggil metode Convert.ToHexString yang diperkenalkan di .NET 5.0.
byte[] array = [0x64, 0x6f, 0x74, 0x63, 0x65, 0x74];
string hexValue = Convert.ToHexString(array);
Console.WriteLine(hexValue);
/*Output:
646F74636574
*/
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk