gpt4 book ai didi

bitwise-operators - 使用按位运算符将两个整数相乘

转载 作者:行者123 更新时间:2023-12-03 10:32:40 26 4
gpt4 key购买 nike

如何使用按位运算符将两个整数相乘?

我找到了一个实现 here .有没有更好的方法来实现乘法?

例如:2 * 6 = 12 必须使用按位运算符执行。

注意:数字是任意的,不是 2 的幂

最佳答案

#include <stdio.h>

int main(void)
{
int a, b, result;
printf("Enter the numbers to be multiplied:");
scanf("%d%d", &a, &b); // a > b
result = 0;
while (b != 0) // Iterate the loop till b == 0
{
if (b & 1) // Bitwise & of the value of b with 1
{
result = result + a; // Add a to result if b is odd .
}
a <<= 1; // Left shifting the value contained in 'a' by 1
// Multiplies a by 2 for each loop
b >>= 1; // Right shifting the value contained in 'b' by 1.
}

printf("Result: %d\n",result);
}

Source

关于bitwise-operators - 使用按位运算符将两个整数相乘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4456442/

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