C# 在串口通讯过程中经常要用到 16进制与字符串、字节数组、整数与字符串,字节数组编码为字符串、字符串按编码转换为字节数组之间的转换。

在串口通讯过程中经常要用到 16进制与字符串、字节数组、整数与字符串,字节数组编码为字符串、字符串按编码转换为字节数组之间的转换。

定义字节数组姐使用到的监视列表

   byte[] b = new byte[] { 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0xCA, 0xE9, 0xB7, 0xA8, 0xBC, 0xD2 };

    var arrByte = new List<byte>();
    List<byte> bArr = new List<byte>();

    var arrString0 = new List<string>();
    List<string > sArr = new List<string>();

整数转化位字符串

  /*************************整数转化位字符串*********************************/
        foreach (var item in b)
        {
            //默认无格式转换是等效十进制整数字符串
            arrString0.Add(item.ToString());
            //定义位转位等效十六进制数字符串
            sArr.Add(item.ToString("x2"));

        }
        //无符号十进制字符串
        string[] arr0 = arrString0.ToArray();
        //arr0为:"49" "50""51""52""53""54""202""233""183""168""188""210"
        //十六进制字节字符串
        string[] sarr = arrString0.ToArray();
        //sarr为:"31""32""33""34""35""36""ca""e9""b7""a8""bc""d2" 

字符串转换整数

/*************************字符串转换整数*********************************/
foreach (var item in arr0)
{
    //将数字字符串表示形式转换为8位无符号整数
    arrByte.Add(Convert.ToByte (item)); 
}
foreach (var item in sarr)
{
    //将数字字符串表示形式转换为8位无符号整数
    bArr.Add(Convert.ToByte(item));
}
//转换为字节数组
byte [] barrout = arrByte.ToArray();
byte []bout = bArr.ToArray();
//barrout、bout=为:49 50 51 52 53 54 202 233 183 168 188 210 

将十进制、十六进制整数的字符串转化成十六进制数的字符串

//十进制转二进制
string s0= Convert.ToString(183, 2);    //s0 = "10110111"
//十六进制转二进制
s0 = Convert.ToString(0xb7, 2);         //s0 = "10110111"
//十进制转八进制
string s1 = Convert.ToString(168, 8);   //s1 = "250"
//十六进制转八进制
s1 = Convert.ToString(0xa8, 8);         //s1 = "250"
//十进制转十六进制
string s2 = Convert.ToString(210, 16);  //s2 = "d2"
//十六进制转十六进制
s2 = Convert.ToString(0xd2, 16);        //s2 = "d2"

将二进制、十进制、十六进制字串转化成十进制的整数

//二进制转十进制
int i0=  Convert.ToInt32("1101110", 2);//i0 = 110
//八进制转十进制
int i1 = Convert.ToInt32("64", 8);      //i1 = 52
//十六进制转十进制
int i2 = Convert.ToInt32("6e", 16);     //i2 = 110

按照指定编码将string编程字节数组

按照指定编码将字节数组变为字符串

  Encoding encode = Encoding.Default ;
        string strEncode = "123456书法家";
        byte[] eBtye = encode.GetBytes(strEncode); //按照指定编码将string编程字节数组
                                                   //eBtye = byte[12]{49 ,50 ,51 ,52 ,53, 54, 202, 233 ,183 ,168, 188 ,210 }
        string eString = encode.GetString(eBtye);  //按照指定编码将字节数组变为字符串
                                                   //eString = "123456书法家"
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值