在十六进制字符串与数值类型之间转换

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);

 

posted @ 2016-04-20 20:47  zmztyas  阅读(13506)  评论(0编辑  收藏  举报