c++实现原码一位乘法
时间: 2024-01-02 09:03:21 浏览: 130
原码一位乘法是指两个数的二进制原码相乘的过程,下面是C++实现原码一位乘法的代码:
```c++
int mul(int a, int b) {
int res = 0;
int sign = (a > 0) ^ (b > 0) ? -1 : 1; // 判断符号
a = abs(a);
b = abs(b);
while (b) {
if (b & 1) {
res += a;
}
a <<= 1;
b >>= 1;
}
return sign * res;
}
```
其中,a和b是两个需要相乘的数,res是结果,sign是符号。首先判断两个数的符号,然后将它们转换为正数进行计算。在循环中,如果b的二进制末位是1,则将a加到res中,否则a左移一位,b右移一位。最后返回结果时,需要乘上符号。
阅读全文