字符串转换大全(串口通信常用) 不断更新中

20 篇文章 0 订阅
1 篇文章 0 订阅

十进制转二进制

Console.WriteLine(Convert.ToString(69, 2));

十进制转八进制

Console.WriteLine(Convert.ToString(69, 8));

十进制转十六进制

Console.WriteLine(Convert.ToString(69, 16));

二进制转十进制

Console.WriteLine(Convert.ToInt32("100111101", 2));

八进制转十进制

Console.WriteLine(Convert.ToInt32("76", 8));

16进制转换10进制

Console.WriteLine(Convert.ToInt32("FF", 16));

十六进制字符串转成asci码

 public string toAsic(string conternHex)
        {
            string gg="";
            for (int i = 0; i < conternHex.Length - 1; i++)
            {
                string k;
                if (i % 2 == 0)
                {
                    k = conternHex.Substring(i, 2);
                    gg += ((char)int.Parse(k, System.Globalization.NumberStyles.HexNumber)).ToString();
                }
            }
            return gg;
        }

ASCII码转成对应的字符串     // string s2 = "A1022013"; asci 转十六进制 4131303232303133

        private string asciToHex(string p)
        {
            byte[] ba = System.Text.ASCIIEncoding.Default.GetBytes(p);
            StringBuilder sb = new StringBuilder();
            foreach (byte b in ba)
            {
                sb.Append(b.ToString("x"));
            }
            return sb.ToString();
        }

//十六进制字符串转字节数据组

 private byte[] HexStringToByteArray(string s)
        {
            s = s.Replace("   ", " ");
            byte[] buffer = new byte[s.Length / 2];
            for (int i = 0; i < s.Length; i += 2)
                buffer[i / 2] = (byte)Convert.ToByte(s.Substring(i, 2), 16);
            return buffer;
        }

 

    /// <summary>
     /// 字节数组转16进制字符串
     /// </summary>
     /// <param name="bytes"></param>
     /// <returns></returns>
     public static string byteToHexStr(byte[] bytes)
     {
         string returnStr = "";
         if (bytes != null)
         {
             for (int i = 0; i < bytes.Length; i++)
             {
                 returnStr += bytes[i].ToString("X2")+" ";
             }
         }
         return returnStr;
     }

 

求异或值

        private string xor(string p)
        {
            string hor = p.Replace(" ", "");
            byte[] arr2 = new byte[hor.Length / 2];
            byte w = 0;
            for (int i = 0; i < arr2.Length; i++)
            {
                arr2[i] = Convert.ToByte(hor.Substring(i * 2, 2), 16);
                byte z = arr2[i];
                w ^= z;
            }
            return w.ToString("X2");
            // MessageBox.Show(w.ToString());

        }

 


     /// <summary>
     /// 累加和校验
     /// </summary>
     /// <param name="bs"></param>
     /// <returns></returns>
     private static byte cumulative(byte[] bs)
     {
         int num = 0;
         //所有字节累加
         for (int i = 0; i < bs.Length; i++)
         {
             num = num + bs[i];
         }
         byte ret = (byte)(num & 0xff);//只要最后一个字节
         return ret;
     }

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值