位运算实现四则运算原理
- 基础:
1.整数加法
2.整数减法
3.正整数乘法
4.正整数除法 - 实战
1.整数计算器
基础
整数加法
int Add(int a, int b)
{
int ans;
while(b)
{ //直到没有进位
ans = a^b; //不带进位加法
b = ((a&b)<<1); //进位
a = ans;
}
return a;
}
如果b不为零的话,那么就继续相加,如果为零,则返回最终结果a。
int Add (int a, int b){
return b ? Add (a ^ b, (a & b)<<1) : a;
}
这是递归版本
整数减法
这里的static是c的封装思想
static int Negative (int a){
return Add (~a, 1);
}
int Sub (int a, int b){
return Add (a, Negative (b));
}
注明一下数学证明补码的网址:证明地址
正整数乘法
这里的static封装是因为我们会在底下写一个乘法函数,而正数乘法不安全,所以不向开发者开发
static int Pos_Multiply(int a,int b){
int ans = 0;
while (b){
if (b &