初级会员

- 积分
- 59
- 金钱
- 59
- 注册时间
- 2019-5-6
- 在线时间
- 17 小时
|
5金钱
收到的数据是组char型数据,比如0xce(-50),0x9d(-99),需要转成ASCII码发送,所以我写了个函数分别取位数转为ASCII码,正数是OK的,但是收到负数时,if(data < 0),进不去,默认按正数处理了而且是unsigned char,会进去if(data > 10),这个是为什么
if((data[8] < 10) && (data[8] >= 0))
{
send_data[length + 1] = data[8] + 0x30;
send_data[length + 2] = 0x2C;
length = length + 2;
}else if(data[8] > 10)
{
send_data[length + 2] = data[8]%10 + 0x30;//¸öλ
send_data[length + 1] = data[8]/10 + 0x30;//ê®Î»
send_data[length + 3] = 0x2C;
length = length + 3;
}else if(data[8] > (-10))
{
send_data[length + 1] = 0x2D;//¸ooÅ
send_data[length + 2] = (-data[8]) + 0x30;
send_data[length + 3] = 0x2C;
length = length + 3;
}else if(data[8] < (-10))
{
send_data[length + 1] = 0x2D;//¸ooÅ
send_data[length + 2] = (-data[8])/10 + 0x30;//ê®Î»
send_data[length + 3] = (-data[8])%10 + 0x30;//ê®Î»
send_data[length + 4] = 0x2C;
length = length + 4;
}
这里这个-10这部分就进不去
|
|