标题: 为什么显示十位要与16求余,与10求余不行 求大佬 [打印本页]

作者: liuhengzhi    时间: 2019-12-2 20:58
标题: 为什么显示十位要与16求余,与10求余不行 求大佬
我用串口助手向单片机发送12,让他在数码管上显示,从SBUF上接收到数据,为什么显示十位要与16求余,与10求余不行

作者: csmyldl    时间: 2019-12-3 02:08
串口助手发送的12是指0x12(十六进制),如果要显示1,只能0x12/16才是1,0x12%16才是2
作者: gb302    时间: 2019-12-3 08:00
接收的是16进制数
作者: wulin    时间: 2019-12-3 08:13
串口助手向单片机发送12实际是16进制的0x12,是十进制的18。
作者: moluxiyan    时间: 2019-12-3 09:32
你串口助手向单片机以16进制或字符形式发送,看你用哪种方式了
作者: 小黑屋525    时间: 2019-12-3 12:06
串口发送是以ASCLL码来发送的;
作者: 郑汉松    时间: 2019-12-3 16:54
看你串口发的是什么格式的,16进制肯定余16啦,10进制就余10
作者: liuhengzhi    时间: 2019-12-3 20:47
csmyldl 发表于 2019-12-3 02:08
串口助手发送的12是指0x12(十六进制),如果要显示1,只能0x12/16才是1,0x12%16才是2

如果我发送一个三位数,如何让它三位分别在三个数码管上显示
作者: bh2030693    时间: 2019-12-3 21:03
说的可能是BCD码,除以16就是二进制的右移4位;
你先弄清楚是以什么类型传递数据,例如16进制,10进制,BCD码...
别人猜的话范围很大,蒙对了就对了,蒙错了就错了,所以还是从对方角度考虑,提问题最好写两句代码,这样网友看了就明白了。
作者: 卡瓦①    时间: 2019-12-3 21:28
liuhengzhi 发表于 2019-12-3 20:47
如果我发送一个三位数,如何让它三位分别在三个数码管上显示

num/256(百),num%256/16(十),num%16(个)    num为你要发送的数。
作者: yyh001123    时间: 2019-12-3 21:40
liuhengzhi 发表于 2019-12-3 20:47
如果我发送一个三位数,如何让它三位分别在三个数码管上显示

如果是16进制的数字,百位=数值/16^2=数值/256,十位=(数值%256)/16,个位=(数值%256)%16
作者: liuhengzhi    时间: 2019-12-5 09:08
卡瓦① 发表于 2019-12-3 21:28
num/256(百),num%256/16(十),num%16(个)    num为你要发送的数。

好的明白了,谢谢大佬
作者: liuhengzhi    时间: 2019-12-5 09:14
bh2030693 发表于 2019-12-3 21:03
说的可能是BCD码,除以16就是二进制的右移4位;
你先弄清楚是以什么类型传递数据,例如16进制,10进制,BC ...

好的,下次会注意的




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1