进制转换


//C#中各种字符类型的转化,使用于串口通信------------
                            

            
//字符长度的理解
            string s = "我是一个2兵";
            
int len = s.Length;//6个字符   
            byte[] sarr = System.Text.Encoding.Default.GetBytes(s);
            len 
= sarr.Length;//11个字节   
            
            
//10进制转字符串,也没有意义,要转成对应的ascii码
            int t1 = 81;
            
string s1 = t1.ToString();
            
//这个10进制转对应ASCII字符才有意义。
            s1 = ((char)t1).ToString();

            
//16进制转字符串:这个没有意义。就是tostring了。
            int intAB = 0x16;  
            s1 
= intAB.ToString();
            
//16进制转对应ASCII字符:
            byte babb = 0x45;
            
string ass = ((char)babb).ToString();

            
//ASCII字符串转10进制数
            string tr = "2Ab刘";
            
string d ="";
            
for (int i = 0; i < tr.Length; i++)
            {
                
int ii = (int)Convert.ToChar(tr.Substring(i, 1));
                d 
= d +" "+ ii.ToString();
            }
            
//ASCII字符串转16进制数
            string s2 = "2Ab刘";
            
byte[] ba = System.Text.ASCIIEncoding.Default.GetBytes(s2);
            StringBuilder sb 
= new StringBuilder();
            
foreach (byte b in ba)
            {
                sb.Append(b.ToString(
"x"+ " ");
            }
            
//16进制数转10进制
            int intA = 0x16;//定义的时候是必须带0x的   
            string strA = "16";//字符串可以不带   
            int intA1 = Convert.ToInt32(intA);
            
int intA2 = Convert.ToInt32(strA, 16);

            
//10进制转16进制
            strA = Convert.ToString(intA2, 16);


            
//10进制转2进制,16进制类似
            int int10 = 10;
            
string str2 = Convert.ToString(int10,2);

            
//2进制转10进制
            int10 = Convert.ToInt32(str2,2);



    
int iValue;
    
byte[] bs;
    
string sValue;         

    iValue 
= Convert.ToInt32("0C",16); // 16进制->10进制
    bs = System.BitConverter.GetBytes(iValue); //int->byte[]
    sValue = System.Text.Encoding.ASCII.GetString(bs);   //byte[]-> ASCII

ConvertExample


Code

加码解码的规则如下:
加码时将字符串中的所有字符转换成其对应的ASCII值的16进制值,例如:“A”的ASCII码值为65,以16进制值表示

为41,故应发送两个字符“41”以代表字符“A”。
对于汉字则以其内码的16进制值来表示,如“测试”应为:B2E2CAD4。


Code
posted @ 2010-01-15 14:15  Sue_娜  阅读(238)  评论(0编辑  收藏  举报