最近我对模运算符感到困惑,%
.
据了解a % b == a-a/b*b
当我们有整数时a
and b
where a > b
,如果a
and b
足够小。
然而,当谈到处理器的计算方式时,处理器是否使用与前面提到的相同的方法,a-a/b*b
?也许只是将除法翻译成减法或加法,或者可能涉及一些转换?
除了 2 的幂之外,模运算符可以(并且在大多数优化编译器中)转换为简单的按位运算,恐怕唯一的方法是困难的方法。解释是http://en.wikipedia.org/wiki/Modulo_operation http://en.wikipedia.org/wiki/Modulo_operation
在另一个答案中,@Henk Holterman 指出,一些 CPU 在微代码中执行此操作,在进行整数除法时将余数保留在寄存器中,这意味着模指令可以简化为整数除法并返回余数。 (我在此处添加该信息是因为该答案已被接受。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)