在 C++ 中使用按位运算符乘以任何数字
在本教程中,我们将编写一个程序,使用按位运算符将给定的两个数字相乘。
该左移位(<<)算子被用于乘法,而右移位(>>)被用于分割。
两个数x, y的乘法可以写成x * y = (x * 2) * (y / 2)如果 y 是偶数,否则它等于x * y = (x * y) * (y / 2) + x。
因此,每当第二个数字变为奇数时,将第一个数字添加到结果中。让我们看看解决问题的步骤。
让我们看看解决问题的步骤。
初始化两个数字。
编写一个循环,直到第二个数字变为 0
如果第二个数字是奇数,则将第一个数字添加到结果中。
左移第一个数字 1 位。
第二个数字右移 1 位。
示例
让我们看看代码。
#include <bits/stdc++.h>输出结果using namespace std;
int multiplyTwoNumbers(int a, int b) {
int result = 0;
while (b > 0) {
if (b & 1) {
result += a;
}
a = a << 1;
b = b >> 1;
}
return result;
}
int main() {
cout << multiplyTwoNumbers(75, 4) << endl;
cout << multiplyTwoNumbers(90, 9) << endl;
cout << multiplyTwoNumbers(83, 66) << endl;
return 0;
}
如果你运行上面的代码,那么你会得到下面的结果。
300810
5478
结论
如果您对本教程有任何疑问,请在评论部分提及。
以上是 在 C++ 中使用按位运算符乘以任何数字 的全部内容, 来源链接: utcz.com/z/338824.html