【发布时间】:2019-07-27 16:58:01
【问题描述】:
我有十进制值的字节数组,如[0, 4, 20, 141],我希望将其转换为[0x00, 0x04, 0x14, 0x8D],我需要将此数组用作字节以添加到缓冲区中
当前数据:
byte[] packet = new byte[4];
packet[0] = 0;
packet[1] = 4;
packet[2] = 20;
packet[3] = 141;
预计发送到串口的数据如下:
byte[] mBuffer = new byte[4];
mBuffer[0] = 0x02;
mBuffer[1] = 0x04;
mBuffer[2] = 0x14;
mBuffer[3] = 0x8D;
试过了:
Convert.ToByte(string.Format("{0:X}", packet[0]));
但是抛出异常:
输入字符串的格式不正确。
【问题讨论】:
-
这个
packet[0]来自哪里? -
@er-sho 我正在从
.bin文件中读取字节,并将 16-16 字节的十进制值切片,但我想像这样将它作为0x00传递 -
非常不清楚您要做什么...您从 4 字节数组开始...您想将其转换为 4 字节数组...您想将其转换为一些字符串和然后回到大概 4 个字节的数组。也许显示期望的结果可以阐明您想要实现的目标......
-
@AlexeiLevenkov 对不起,我也是新手:)更新了问题!
-
我提供了一个可能会有所帮助的答案,但是当数字已经相等时,您尝试进行此转换似乎很奇怪 - 只是格式不同