关于sprintf语句解决思路

关于sprintf语句sprintf(s,%02X%02X%02X.0,rbuf[1],rbuf[2],rbuf[3])当rbuf[1]或rbuf[2]或rbuf[3]大于0

关于sprintf语句
sprintf(s,"%02X%02X%02X.0",rbuf[1],rbuf[2],rbuf[3]);
当rbuf[1]或rbuf[2]或rbuf[3]大于0x80时,格式化出来的字符串就出错,前面加上了FF,是怎么回事啊???
请高手帮忙!!!


[解决办法]
大于080的时候是汉字编码
[解决办法]
主要看你的rbuf如何定义的,如果是BYTE数组,应该不会出问题。针对你的代码可以强制类型转换,改为
sprintf(s,"%02X%02X%02X.0",(byte)rbuf[1],(byte)rbuf[2],(byte)rbuf[3]); 

[解决办法]
考虑一下数据范围,截取后面的一个字节就可以了:

sprintf(s,"%02X%02X%02X.0",rbuf[1]&0xff,rbuf[2]&0xff,rbuf[3]&0xff); 

&0xff,截取末尾一个字节