程序语言中的取余是如何实现的?
关注者
196被浏览
64,65812 个回答
80x86汇编里面除法指令div(idiv).
8位运算结果,商放在累加器低位AL,余数放在累加器高位AH。
16位运算,商存放在累加器AX,余数放在数据寄存器DX里。and so on。
底层运算里,余数和商是同时算出来的。
计算余数不是一个单独的功能。
这是硬件逻辑的工作。
补:
汇编的除法本质是重复的减法
减到最后被除数不够除数减了,剩下的自然就是余数
具体的步骤可以看这篇文章
汇编除法原理————————————
计算机一次也就只能处理32/64位二进制数运算。
除数大了要将计算拆分,当然会慢。
”如果除数非常非常大, 会不会导致计算的速度也非常慢呢?“
我想是的。
————————————
取余数在密码学理论上使用极为普遍。
实际这些功能多数直接由硬件电路实现,非常快。



