标题: 单片机除以16求商和余进行"高4位"和"低4位"分离大神们求解答。 [打印本页]

作者: 李仲豪    时间: 2017-8-7 16:02
标题: 单片机除以16求商和余进行"高4位"和"低4位"分离大神们求解答。
写时钟程序的时候其中有段程序是除以16求商和余进行"高4位"和"低4位"分离,我就是想弄明白,是怎么分离的,求详细的解释过程。

作者: HC6800-ES-V2.0    时间: 2017-8-8 08:18
我来帮你吧。
举例:如数据十进制数123,它的十六进制为7B,即高四位为7,低四位为B。怎样通过计算,分别得到呢?
123/16(求商)=7,因为这里的小数据部分自动舍掉了,只留下整数部分,这样就取出了高四位的7。
123%16(求余)=11,就是十六进制的B。求余,是保留不能整除的余下部分,这样就取出了低四位的值了。
从数据原理上说,十六进制数,就是逢16进一,高四位是几,就有多少个16,低四位一定是小于16的数,如F为15。

作者: yzwzfyz    时间: 2017-8-8 10:54
又是因为对汇编不重视而发出的提问。
在汇编中这是极简单的事。
将被除数右移四位就是商。
屏蔽掉高位,只留下低四位,就是余数。
作者: 李仲豪    时间: 2017-8-8 11:50
yzwzfyz 发表于 2017-8-8 10:54
又是因为对汇编不重视而发出的提问。
在汇编中这是极简单的事。
将被除数右移四位就是商。

汇编好学吗,可是我C语言还没有掌握好。
作者: yzwzfyz    时间: 2017-8-8 13:28
本末倒置,学好汇编,再学C,C就非常简单了易学了。




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