打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
如何通过利用加、减、移位等方式实现单片机中乘法和除法的运算! 中国电子开发网(www.ou...
乘法比较简单。

最简单的方法就是模拟笔算乘法的过程:

     1101 A
*    1011 B
---------
     1101
    1101
   0000
  1101
---------
 10001111

具体过程:1、累加器清零;2、由乘数B的末位确定是否把A加到累加器中;3、A左移1位、B右移1位;4、重复1。

改进一下:乘数B右移的时候空出的高位,可以利用来存放结果的低位,即移位的时候,A不需要移动,而是把累加结果右移1位,移出的部分进入乘数B的空位中,这样最终结果的高位放在累加器中,低位放在B中。这样做的好处是,A、B、累加器的位数一样,容易在计算机体系中运算。
 
除法一般不好优化,直接按照笔算步骤来算就可以了:

1、根据被除数(余数)和除数的大小来上商;
2、被除数(余数)低位补0,再减去右移后的除数,也可以改为左移余数,减去除数,这样可以确保参与运算的寄存器具有相同的位数;
3、商写到寄存器的最低位,然后商左移1位。
 
连续做减法,现在公认的就是这个,让被除数连续减去n个除数,直到差小于除数时为止,这样减去的次数就是商,剩下的差就是余数。 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
定点数运算 (转)
小学三年级数学知识点归纳
余数除法法则
计算除法时,错把除数65写成56,结果得到的商是13,余数是52,求正确的商应该是多少?
小学数学运算法则
ALU运算器的计算逻辑以及电路实现
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服