有人能告诉我二进制数字的背后逻辑吗?例如,我想要110 ^ 10,但我不知道它背后的逻辑。如果有人可以提供给我,那将是一个很大的帮助..(我希望它是用纯二进制完成的,没有转换,也没有循环乘法。只是逻辑......)
答案 0 :(得分: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
答案 1 :(得分:0)
Exponentiation是与数字的实际文本表示无关的操作(例如,在基数2 - 二进制,基数10 - 十进制)。
也许您想询问二进制XOR(eXclusive OR)操作?
答案 2 :(得分:0)
peenut是正确的,因为取幂并不关心你代表你的数字是什么基础,我不知道你的意思是“只是逻辑”,但这里是一个刺。
在维基百科上快速搜索显示this algorithm。基本思路是对你的基础进行平方,存储结果,然后对结果进行平方并重复。这将为您提供答案的因素,然后您可以将它们相乘。我认为它是一种“二进制搜索” - 带有求幂的算法,因为你可以通过平方和存储来跳过很多中间步骤。