C# byte[]和十六进制字符串互换方法

以16进制的方式进行串口通信,发送时得将十六进制字符串转换成byte[]数组,接收时得将byte[]转换成十六进制字符串显示

1.十六进制字符串转byte[]数组

string str = $"aa 55 00 01 0c 0d cc 33";
byte[] bytes = str.Split(' ').Select(x => Convert.ToByte(x, 16)).ToArray();//十六进制字符串转byte[]数组
serialPort.Write(bytes, 0, bytes.Length);//串口发送数据

2.byte[]转十六进制字符串

if (serialPort.BytesToRead > 0)
{
    byte[] temp = new byte[serialPort.BytesToRead];//定义接收byte[]数组
    serialPort.Read(temp, 0, serialPort.BytesToRead);//接收到byte数组数据
    var hex = BitConverter.ToString(temp, 0).Replace("-", " ").ToLower();//byte[]转十六进制字符串
    Console.WriteLine("Receive:" + hex);
}

其中,BitConverter.ToString 方法将指定的字节数组的每个元素的数值转换为它的等效十六进制字符串表示形式。例如“7F-2C-4A”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值