首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在LC3中计算模数

在LC3中计算模数
EN

Stack Overflow用户
提问于 2020-10-31 22:43:01
回答 1查看 547关注 0票数 0

如何在LC3中计算N mod K?N来自内存位置x3100,K来自内存位置x3101,您希望将N mod K的结果存储在x3102中

EN

回答 1

Stack Overflow用户

发布于 2020-10-31 23:37:18

在LC3中如何计算N

K?

求模数的一种方法是通过重复减法进行除法;这将产生商和余数(模数). ,下面的N是被除数,K是除数。

从0开始计数;这个计数将计算从被除数中减去除数的次数。

然后循环,只要被除数大于或等于除数,从前者中减去后者,将结果放回除数中,由于我们能够进行减法,因此将商加1。请注意,在循环的每次迭代中,都会更新被除数(每次迭代都会变小)。

当这个循环结束时,计数是商,(更新后的)被除数是剩余的不能减去的余数。(余数将小于除数。如果是零,除法是“/exact”)。

此算法处理无符号数(被除数和除数). 它可以修改为有符号的,通常是通过否定负数,然后执行无符号除法算法(并根据需要否定答案)。

这可能是在没有乘法或除法的处理器上进行除法/模运算的最简单方法。让我们注意到,在病理情况( 65535 /1)中,它将迭代65535次,这是大量的迭代。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64622904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档