在C#中将int转换为字节为HEX

时间:2012-08-03 10:44:51

标签: c# hex int byte

我需要通过串口将Hex字符串发送到设备,我现在这样做:

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

现在我需要将int的值(如30)转换为c[1] = 0x30,或者将int值34转换为c[1] = 0x34。 我希望你明白我的意思。

那我怎么能管这个呢?

3 个答案:

答案 0 :(得分:7)

此格式称为binary-coded decimal。对于两位数字,整数除以10并乘以十六,然后将除法的余数加十:

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

答案 1 :(得分:3)

另一种方法可以是

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

答案 2 :(得分:0)

假设int Data = 2821;是通过COM端口发送:

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

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

ComPort.Write(c,0,c.Length );