簡體   English   中英

在 C# 中將 int 轉換為字節為 HEX

[英]Convert int to byte as HEX in C#

我需要通過串行向設備發送十六進制字符串,我現在這樣做:

byte[] c = new byte[3];
c[0] = 0x57;
c[1] = 0x30;
ComPort.Write(c,0,c.Length );

現在我需要將 30 之類的 int 值轉換為c[1] = 0x30或 34 的 int 值給出c[1] = 0x34 我希望你明白我的意思。

那么我該如何管理呢?

這種格式稱為二進制編碼的十進制 對於兩位數,將整數除以十並乘以十六,然后將除法的余數加回十:

int num = 45;
int bcdNum = 16*(num/10)+(num%10);

另一種方法是

c[1] = Convert.ToByte(num.ToString(), 16);

假設int Data = 2821; 是通過COM端口發送的:

c[0]= Convert.ToByte(data & 0x00FF); 

c[0]= Convert.ToByte(data & 0xFF00) >> 8);

ComPort.Write(c,0,c.Length );
int num = 1366;
string bcdNum = num.ToString("X");
if (bcdNum.Length < 2)
bcdNum = "0" + bcdNum;
byte[] bytes_str=Enumerable.Range(0, bcdNum.Length).Where(x => x % 2 == 0).Select(x => Convert.ToByte(bcdNum.Substring(x, 2), 16)).ToArray();

暫無
暫無

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

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