Nasıl yapılır: Onaltılık Dizeler ve Sayısal Türler Arasında Dönüştürme (C# Programlama Kılavuzu)
Bu örnekler aşağıdaki görevleri gerçekleştirmek nasıl gösterir:
Her karakterin onaltılık değerini elde bir dize.
Elde char , karşılık gelen onaltılık dize her değer için.
Bir onaltılık dönüştürmek string için bir int.
Bir onaltılık dönüştürmek string için bir float.
Dönüştürme bir bayt on altılı diziye string.
Örnek
Bu örnek her karakterin onaltılık değerini verir bir string.İlk ayrıştırır string bir dizi karakter.Sonra da onu çağıran ToInt32(Char) sayısal değerini elde etmek için her bir karakteri üzerinde.Son olarak, kendi içinde onaltılık gösterimi olarak sayı biçimleri bir 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
*/
Bu örnek ayrıştırmak için kullandığı bir string , onaltılık değerler ve her bir onaltılı değere karşılık gelen karakter verir.İlk çağrı Split(Char) yöntemi her birey olarak onaltılık değer elde etmek için string bir dizi.Sonra da onu çağıran ToInt32(String, Int32) olarak gösterilen ondalık bir değer onaltılık değeri dönüştürmek için bir int.Bunu, o karakter koduna karşılık gelen karakter elde etmek için iki farklı şekilde gösterir.İlk tekniği kullanan ConvertFromUtf32(Int32), bağımsız değişken karşılık gelen karakter verir bir string.İkinci yöntem açıkça çevirir int için bir 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 !
*/
Bu örnek, bir onaltılı dönüştürmek için başka bir yol gösterir string çağırarak bir tamsayıya Parse(String, NumberStyles) yöntemi.
string hexString = "8E2";
int num = Int32.Parse(hexString, System.Globalization.NumberStyles.HexNumber);
Console.WriteLine(num);
//Output: 2274
Aşağıdaki örnek nasıl dönüştürüleceği on altılı gösterir string için bir float kullanarak BitConverter sınıfı ve Int32.Parse yöntemi.
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
Aşağıdaki örnek nasıl dönüştürüleceği gösterir bir bayt kullanarak bir onaltılık dize dizisine BitConverter sınıfı.
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
*/
Ayrıca bkz.
Görevler
Başvuru
Türler (C# Programlama Kılavuzu)