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


     

  • 相关阅读:
    完全背包 基础
    hdoj_2546饭卡(强忍悲痛,好好写题解)
    蓝桥杯--猜字母 学到了!
    Common Subsequence
    Ansible ad-hoc 手册(3)
    ansible playbook 以及变量(2)
    Ansible安装以及常用模块操作(1)
    zabbix3.4自定义触发器(4)
    zabbix3.4自定义监控项(3)
    zabbix3.4监控一台主机(2)
  • 原文地址:https://www.cnblogs.com/Serialport/p/3114334.html
Copyright © 2011-2022 走看看