有人能告诉我指数化二进制数背后的逻辑吗?比如我想取110^10,但是不知道背后的逻辑。如果有人能提供给我,那将是一个很大的帮助..(而且我希望它以纯二进制完成,没有转换,也没有循环乘法。只是逻辑......)
问问题
10450 次
3 回答
1
二进制指数非常容易。它们只是简单的添加和转换。
数字 110 是您开始的地方。从数字 10 (即 0)向后计算,它是零,所以这意味着“不要添加它”。
现在你左移 - 所以 110 变成 1100
现在你处理 10 的下一位(即 1)——它是一个,所以这意味着“将它添加到结果中”——到目前为止它是 0,因为我们还没有添加它,所以结果现在是 1100
没有更多的事情要做 - 所以答案是 1100
如果你在做 110^110 - 你还有一个要做 - 所以 - 你再次转移并现在得到 11000。
最后一位又是一个,所以现在添加:1100 + 11000 = 100100
110^10=1100 即 6^2=12
110^110=100100 即 6^6=36
于 2017-07-24T15:15:35.423 回答
0
peenut 是正确的,因为求幂并不关心你用什么基数来表示你的数字,而且我不知道你所说的“只是逻辑”是什么意思,但这里有一个尝试。
在 Wikipedia 上快速搜索一下就会发现这个算法。基本思想是平方你的基础,存储结果,然后平方结果并重复。这将为您提供答案的因素,然后您可以将它们相乘。我认为它是一种“二进制搜索”风格的求幂算法,因为您可以通过平方和存储跳过许多中间步骤。
于 2012-10-06T00:06:48.380 回答