#include <iostream>
using namespace std;
int add(int a, int b)//加法的实现,不用加号
{
if (b == 0) return a;
return add(a ^ b, (b & a) << 1);
}
int mul(int a,int b)
{
if(b<0)//保证b非负
{
a=-a;
b=-b;
}
int index=1;//二进制位置标志
int sum=0;
int temp;
for(int i=0;i<32;i++)//一个整数4个字节,共32位
{ //,所以循环32次,即能把b的所有位与a//相乘
if((index&b)!=0)
{
temp=a<<i;
sum=add(sum,temp);
}
index=index<<1;
}
return sum;
}
int main()
{
int a,b;
int c;
cin>>a>>b;
c=mul(a,b);
cout<<c<<endl;
return 0;
}
无乘号实现乘法
最新推荐文章于 2022-07-25 14:18:05 发布