我需要通过串口将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
。
我希望你明白我的意思。
那我怎么能管这个呢?
答案 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 );