无+/-的加减函数:
int add(int a, int b)
{
int c = a^b;//a,b的无进位加
int d = (a&b)<<1;//产生的进位
if(d != 0) //有进位将无进位的和与进位相加,无进位则返回c
return add(c,d);
return c; //
}
int sub(int a, int b)
{
int b = add(~b,1); //将b转化为其补码。
return add(a,b);
}
本文介绍了一种不使用加减符号实现加法和减法的方法。通过位运算实现无进位加法及进位计算,并利用补码转换进行减法运算。这种方法深入探讨了计算机底层算术运算的原理。
无+/-的加减函数:
int add(int a, int b)
{
int c = a^b;//a,b的无进位加
int d = (a&b)<<1;//产生的进位
if(d != 0) //有进位将无进位的和与进位相加,无进位则返回c
return add(c,d);
return c; //
}
int sub(int a, int b)
{
int b = add(~b,1); //将b转化为其补码。
return add(a,b);
}
789
338

被折叠的 条评论
为什么被折叠?