#include <iostream>
using namespace std;
int plus(int num1,int num2 )
{
return num2 ? plus((num1^num2),(num1&num2)<<1):num1;
}
int negtive(int a) //取补码
{
return plus(~a, 1);
}
int Sub(int a, int b) //减法
{
return plus(a, negtive(b));
}
int mult(int num1,int num2)
{
int ans=0;
while(num2){
if(num2&1)
ans+=num1;
num1<<=1;
num2>>=1;
}
return ans;
}
int div2(int num1,int num2){
int ans=0;
for(int i=31;i>=0;i++){
if((num1>>i)>=num2){
ans+=(1<<i);
num1-=(num2<<i);
}
if(num1==0) break;
}
return ans;
}
int main(){
int i,j;
cout<<"please put in two numbers to plus"<<endl;
cin>>i;
//cout<<~i<<endl;
cout<<"please put in the second number"<<endl;
cin>>j;
cout<<plus(i,j)<<endl;
cout<<Sub(i,j)<<endl;
cout <<mult(i,j)<<endl;
cout <<div2(i,j)<<endl;
return 1;
}
用位运算实现加减乘除(C)
最新推荐文章于 2020-12-21 10:49:34 发布