gpt4 book ai didi

java - 如何在没有 '*' 运算符的情况下执行乘法?

转载 作者:IT老高 更新时间:2023-10-28 13:59:30 25 4
gpt4 key购买 nike

在学习 C 时,我只是在学习一些基本的东西。我遇到了一个问题,即在不使用 * 运算符的情况下将数字乘以 7。基本上是这样的

      (x << 3) - x;

现在我知道了基本的位操作操作,但是我不知道如何在不使用 * 运算符的情况下将一个数字乘以任何其他奇数?有没有通用的算法?

最佳答案

想想你如何用铅笔和纸做十进制乘法:

  12
x 26
----
72
24
----
312

乘法在二进制中是什么样子的?

   0111
x 0101
-------
0111
0000
0111
-------
100011

注意到什么了吗?与十进制乘法不同,当以二进制乘法时,您需要记住“时间表”,在将其写入列表加数之前,您总是将其中一项乘以 0 或 1。不需要时间表。如果第二项的数字是 1,则添加第一项。如果它是 0,你不知道。还要注意加数是如何逐渐向左移动的。

如果您不确定这一点,请在纸上做一些二进制乘法。完成后,将结果转换回十进制,看看它是否正确。在你完成了一些之后,我想你会明白如何使用移位和加法来实现二进制乘法。

关于java - 如何在没有 '*' 运算符的情况下执行乘法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2069488/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com