ASCII码

2019-08-13 23:02发布

最近在研究单片机和组态王的通讯,然后要有ASCLL和字节的转换,



然后找了个代码 ,看不懂,,,求赐教 搜狗截图20170706183916.png

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
haysen
1楼-- · 2019-08-14 02:12
这个是个16进制转换的吧,比如0XB3,   hight_v =B的ASCII码0X42,  low_v =3的ASCII码 0X33, 经过两个IF ELSE计算,high=0x42-0x37=0xB=11,    low= 0x33-0x30=0x3=3,然后value = 0XB&0XF<<4 + 0X3&0XF = 0XB3;
miracle629
2楼-- · 2019-08-14 03:37
你这个是十六进制数实际值与存储值的转换吧,十六进制中A~F在大于40H,如A为41H,减去37H得十进制数10,也就是十六进制数A,十六进制中0~9小于40H,如7为37H,减去30H,得十进制数7,也是十六进制数7,所以最后将存储的ASCII码转换成十六进制数用于计算机内部计算,ASCII码是8位,一字节是16位,所以hight,low分别表示存储的一字节16位的高8位和低8位,转换后十六进制数一个数位用4位就能表示,所以高位所得值左移4位再加上低位所得值,得到最终的value值
randomevent
3楼-- · 2019-08-14 04:31
 精彩回答 2  元偷偷看……
haysen
4楼-- · 2019-08-14 10:21
另外这个代码风格不咋地,缩进乱的一塌糊度,可阅读性差,还没有入参校验
stm32f103ZE
5楼-- · 2019-08-14 11:50
haysen 发表于 2017-7-6 18:47
这个是个16进制转换的吧,比如0XB3,   hight_v =B的ASCII码0X42,  low_v =3的ASCII码 0X33, 经过两个IF  ...

谢谢
stm32f103ZE
6楼-- · 2019-08-14 12:33
miracle629 发表于 2017-7-6 19:18
你这个是十六进制数实际值与存储值的转换吧,十六进制中A~F在大于40H,如A为41H,减去37H得十进制数10,也就 ...

谢谢      

一周热门 更多>