在十六进制字符串与数值类型之间转换
1.获取‘字符串’中的每个字符的十六进制值。
2.获取与十六进制字符串中的每个值对应的字符。、
3.将十六进制string转换为整形。
4.将十六进制string转换为浮点型。
5.将字节数组转换为十六进制string。
此案例输入中的每个字符的是十六进制值。先将string分析为字符数组,然后对每个字符调用Inter32(char)以获取相应的数字值。
static void Main(string[] args) { string input = "Hello World!"; char[] values = input.ToCharArray(); foreach(char letter in values){ int value = Convert.ToInt32(letter); string hexoutput = string.Format("{0:X}",value); //0 表示占位符 x或X表示十六进制 12345.ToString("x"); //生成 3039 (16进制) Console.WriteLine("Hexadecimal value of{0} is {1}", letter, hexoutput); } }
//扩展:
//12345.ToString("n"); //生成 12,345.00
//12345.ToString("C"); //生成 ¥12,345.00
//12345.ToString("e"); //生成 1.234500e+004
//12345.ToString("f4"); //生成 12345.0000
//12345.ToString("x"); //生成 3039 (16进制)
//12345.ToString("p"); //生成 1,234,500.00%
案例分析十六进制值的string对应输出对应的字符。首先将split(char[])方法以获取每个十六进制作为数组中的单个string。然后调用ToInt32(string,int32)以将十六进制转换为表示为int的十进制值。第一种方式使用ConvertFromUtf32(int32),它将对应于整型的字符作为string返回。第二种方法是将int显示转换为char
string hexValues="48 65 6C 6C 6F 20 57 6F 72 6C 64 21"; string[] hexvaluesplit=hexValues.Split(' '); foreach(string hex in hexvaluesplit) { int value=Convert.ToInt32(hex,16); 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); }
案例演示了将十六进制string转换为整数的另一种方法,即调用Int32.Parse(String,NumberStyles)方法
string hexString = "48"; int num = Int32.Parse(hexString,System.Globalization.NumberStyles.HexNumber); Console.WriteLine(num);