1

可能的重复:
巨大数字的有效取幂(我在说 Googols)

我正在尝试创建一些代码来查找x^y(非负 x 和 y)的值。问题是我正在扩展一个 ISA,并且没有构建它的乘法。我想我有一个使用嵌套循环和加法的解决方案,但这可能效率很低,特别是对于更高的权力和基地。

我想知道是否有一种有效的方法可以使用按位移位或其他一些聪明的方法来计算它?我已经为偶数碱基制定了一些我认为可行的算法,但对于奇数碱基我无法得到任何东西。当然,如果有一个对奇数和偶数都有效的解决方案,以节省处理时间来确定数字是奇数还是偶数,那就更好了。

对于偶数,我的解决方案是将基数右移以将其除以 2 并执行许多左移(每次移位乘以 2)乘以指数 1。

示例:4^3

4 RS = 2 所以 2 次左移就像乘以 4,做 2 次(exponent-1)得到4*4*4 = 4^3

所以,请记住,这只需要对正 x 和 y 起作用,有人有好的解决方案吗?提前致谢。

4

0 回答 0