zoukankan      html  css  js  c++  java
  • 用C#实现十六进制字符串转换为ASCII

    最近做串口通信,要用到十六进制批量转ASCII。网上找了半天C#的代码,

    只有单个转换的的,没找到自己需要的代码。只好自己写一个了。

    代码如下:

       

           //触发事件

            private void button1_Click(object sender,EventArgs e)

          {

                textBox2.Text= HexStringToASCII(textBox1.Text);

          }


            /// <summary>
            /// 将一条十六进制字符串转换为ASCII
            /// </summary>
            /// <param name="hexstring">一条十六进制字符串</param>
            /// <returns>返回一条ASCII码</returns>
            public static string HexStringToASCII(string hexstring)
            {
                byte[] bt = HexStringToBinary(hexstring);
                string lin = "";
                for (int i = 0; i < bt.Length; i++)
                {
                    lin = lin + bt[i] + " ";
                }


                string[] ss = lin.Trim().Split(new char[] { ' ' });
                char[] c = new char[ss.Length];
                int a;
                for (int i = 0; i < c.Length; i++)
                {
                    a = Convert.ToInt32(ss[i]);
                    c[i] = Convert.ToChar(a);
                }

                string b = new string(c);
                return b;
            }


            /**/
            /// <summary>
            /// 16进制字符串转换为二进制数组
            /// </summary>
            /// <param name="hexstring">用空格切割字符串</param>
            /// <returns>返回一个二进制字符串</returns>
            public static byte[] HexStringToBinary(string hexstring)
            {

                string[] tmpary = hexstring.Trim().Split(' ');
                byte[] buff = new byte[tmpary.Length];
                for (int i = 0; i < buff.Length; i++)
                {
                    buff[i] = Convert.ToByte(tmpary[i], 16);
                }
                return buff;
            }

     比如输入:41 42 25

    得到结果:AB%

    总结:关于十六进制字符串转ASCII码,正常的话,几句代码就搞定。虽然并不复杂,但是其实代码还是挺多的,就是因为多了批量两个字。希望能帮到大家,也欢迎提出宝贵意见,以更优化代码。


     

  • 相关阅读:
    Excel怎样设置标题行,Excel工作表中标题行的处理
    Delphi的WebBrowser改造,对网页中Alter等对话框的改造方法
    Delphi实现的MIME邮件格式解析类库
    学习C#中调用COM,后期绑定(以及对WinHttp COM对象的C#封装)
    Unicode in RAD Studio
    Delphi2010中字符串汇编需要注意的一点,以及支持2010的AES加密库
    一个SQL Server中的FormatDatetime函数
    关于图像合成所引申的几个函数
    TstringBuilder Delphi2007版
    SQL Server下字符串,整数转换成16进制字符串的方法
  • 原文地址:https://www.cnblogs.com/Serialport/p/3114334.html
Copyright © 2011-2022 走看看