1

有人能告诉我指数化二进制数背后的逻辑吗?比如我想取110^10,但是不知道背后的逻辑。如果有人能提供给我,那将是一个很大的帮助..(而且我希望它以纯二进制完成,没有转换,也没有循环乘法。只是逻辑......)

4

3 回答 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

求幂是独立于数字的实际文本表示的运算(例如,以 2 为底 - 二进制,以 10 为底 - 十进制)。

也许你想问一下二进制异或(异或)操作?

于 2012-07-21T15:24:16.667 回答
0

peenut 是正确的,因为求幂并不关心你用什么基数来表示你的数字,而且我不知道你所说的“只是逻辑”是什么意思,但这里有一个尝试。

在 Wikipedia 上快速搜索一下就会发现这个算法。基本思想是平方你的基础,存储结果,然后平方结果并重复。这将为您提供答案的因素,然后您可以将它们相乘。我认为它是一种“二进制搜索”风格的求幂算法,因为您可以通过平方和存储跳过许多中间步骤。

于 2012-10-06T00:06:48.380 回答