【问题标题】:how can I multiply 2 numbers using right shifting?如何使用右移将 2 个数字相乘?
【发布时间】:2021-03-13 16:12:28
【问题描述】:

我已经搜索了几个小时,但仍然无法弄清楚。 我想将这两个数字相乘:(不是符号数字) 101011 * 110010 = ?

【问题讨论】:

    标签: binary computer-science


    【解决方案1】:

    请注意,您可以将 A 分解为 2 的幂(100000 + 1000 + 10 + 1)。它们中的每一个都代表 B 的一个转变,因此,您可以按照以下步骤操作:

    1. 检查 A 的最右边位。如果为 0,则不执行任何操作。如果为 1,则将 B 添加到结果中(初始为 0)。
    2. 将 A 向右移动。
    3. 将 B 向左移动。
    4. 重复直到 A = 0。

    还有其他方法可以做到这一点。例如,将第 3 步更改为:将结果(循环移位)右移。

    请注意,结果必须具有 A 和 B 的两倍才能得到准确的结果。

    【讨论】:

      猜你喜欢
      • 2016-01-28
      • 2016-04-18
      • 1970-01-01
      • 2022-09-26
      • 1970-01-01
      • 1970-01-01
      • 2018-05-17
      • 2019-03-13
      • 1970-01-01
      相关资源
      最近更新 更多