[英]How to convert from Int64 to hex and from hex to byte in c#
我試圖通過串口發送一個字節數組到微控制器。 這是一個可以與微控制器成功通信的示例數組:
byte[] getCommandArray = new byte[7] { 0x02, 0x0D, 0x01, 0x03, 0x30, 0x44, 0x03 };
我需要做的是從數據庫中讀取不同的值,將它們存儲在一個字節數組中,將此數組發送到串行端口。 我從Int64
讀取數據庫中的值。 另外,為了成功通信,我需要將這些值轉換為十六進制。 例如,如果我從數據庫中讀取13,我需要將其作為0x0D寫入我的數組。 我可以將13轉換為0x0D作為十六進制字符串,但我無法將其轉換為byte
。 如果您有任何其他建議而非此邏輯,我將不勝感激。
如果您只想從Int64
值中獲取所有字節,可以這樣做:
Int64 myValueFromDB = 13;
var asBytes = BitConverter.GetBytes(myValueFromDB);
要檢查這是否產生了您的期望,您可以打印此結果,如下所示:
Console.WriteLine("{{{0}}}", string.Join(",", asBytes.Select(x => "0x" + x.ToString("X2"))));
對於您的示例,對myValueFromDB
使用值13,輸出為:
{0x0D,0x00,0x00,0x00,0x00,0x00,0x00,0x00}
如您所見, asBytes[0]
值為0x0D,其他7個字節為0。
你可以在這個小提琴中自己檢查一下;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.