簡體   English   中英

如何將十六進制字符串,十六進制字符串和十六進制字符串中的十進制值轉換為字節

[英]How do I convert the decimal value in hex string and hex string and hex string to byte

我有十進制值的字節數組,例如[0, 4, 20, 141] [0x00, 0x04, 0x14, 0x8D] ,我希望將其轉換為[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]));

但是拋出一個異常:

輸入的字符串格式不正確。

之所以會出現異常,是因為您試圖替換字符串中沒有“ $”前綴的變量。 嘗試這個:

// Converts integer 141 to string "8D"
String parsed = String.Format($"{0:X}", packet[3]);  

然后,您應該可以使用以下命令將其轉換為字節:

// Parses string "8D" as a hex number, resulting in byte 0x8D (which is 141 in decimal)
Byte asByte = Byte.Parse(parsed, NumberStyles.HexNumber); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM