比如 string buf="124"+" "+"245"+" "+"789";//中間的“ ”表示空格
// 需要轉換為16進制的ASCII碼形式,存到一個byte的陣列里,好進行串口通訊時發送出去,
byte[] buf16=將字串轉為16進制陣列形式;
uj5u.com熱心網友回復:
byte[] buf16 = Encoding.ASCII.GetBytes(buf);
uj5u.com熱心網友回復:
buf.Split(' ').Select(s=>Convert.ToByte(s)).ToArray()
uj5u.com熱心網友回復:
這種轉換出來的是10進制,我監視過了
uj5u.com熱心網友回復:
輸出的陣列在哪里
uj5u.com熱心網友回復:
入行時間不短了啊。給你不全一下吧byte[] buf16 = buf.Split(' ').Select(s=>Convert.ToByte(s)).ToArray();
uj5u.com熱心網友回復:
要加一個16,才是十六進制。code=csharp]
byte[] buf16 = buf.Split(' ').Select(s=>Convert.ToByte(s,16)).ToArray();[
[/code]
不過十六進制的124大于255,byte放不下了,你可能要2位2位的搞,寫個函式吧。
private byte[] StringToBytes16(string source)
{
byte[] destination = new byte[source.Length / 2];
for (int i = 0, j = 0; i < source.Length && j < source.Length / 2; i += 2, j++)
{
string item = source.Substring(i, 2);
destination[j] = Convert.ToByte(item, 16);
}
return destination;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/128612.html
標籤:C#
上一篇:C#正則運算式提取數值
