c# 将字符串转换成 2位的16进制数组通过串口进行发送
答案:1 悬赏:40 手机版
解决时间 2021-03-27 12:55
- 提问者网友:我一贱你就笑
- 2021-03-27 03:18
c# 将字符串转换成 2位的16进制数组通过串口进行发送
最佳答案
- 五星知识达人网友:我住北渡口
- 2021-03-27 04:07
又是一个理解错误的,通讯里发送的都是byte,是不存在十六进制数据的,十六进制的全称叫十六进制字符串,也就是说比如F0,转换后就是一个byte字节,值为十进制240,只有当把收到的240转成十六进制字符串时才有F0
你要的数据只需要用下面方法调用,将得到的byte数组发送出去就行
public static 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;
}
对于你的示例来说就是
string datapacket = "f02e00010200ff";
byte[] array=HexStringToByteArray(datapacket);
serialPort1.Write(array, 0, array.Length);追问非常感谢。你给的答案是对的。
你要的数据只需要用下面方法调用,将得到的byte数组发送出去就行
public static 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;
}
对于你的示例来说就是
string datapacket = "f02e00010200ff";
byte[] array=HexStringToByteArray(datapacket);
serialPort1.Write(array, 0, array.Length);追问非常感谢。你给的答案是对的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯