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码,正常的话,几句代码就搞定。虽然并不复杂,但是其实代码还是挺多的,就是因为多了批量两个字。希望能帮到大家,也欢迎提出宝贵意见,以更优化代码。


     

  • 相关阅读:
    Gated Recurrent Unit (GRU)
    Long Short-Term Memory (LSTM)
    GBDT && XGBOOST
    记录一次网站打开卡--排故障过程
    linux下mysql5.5 5.6 5.7安装教程
    tomcat无法正常shutdown
    linux服务器被入侵的解决方法
    线上CPU 占用300%多-故障解决
    6流程控制-while
    7 流程控制-for序列 for字典
  • 原文地址:https://www.cnblogs.com/Serialport/p/3114334.html
Copyright © 2011-2022 走看看