关于串口接受的数据转换的问题
问题描述:从
串口接收
数据,按“正常显示”的话为乱码,按“16进制显示”为 "0135"(不含引号)。这个数实际上表示的值也正是135(10进制数)。
目的是想将显示成0135的这个
字符串转化为135这个十进制的数,不知如何做。
已经做过的尝试:
(1)16进制转化成
数字:不好使,显示始终为0;经测试,似乎要在正常显示模式
输入的数字才可以正常转化。
(2)字符串到字节数组:"01 35" ==>数组[0] = 1,数组[1] =
53;还是不知道怎么转化成135,第二个感觉有点近了。
非常感谢!
这实际是BCD码转换成10进制字符串的问题,BCD码又多种方式,最常用的是8421码,BCD码一个字节表示两个10进制数位,因为通常的转换函数是基于字节的,所以无法直接用常规的转换函数。