1.用位运算实现加法
int Add(int a, int b)
{
if(b == 0)
return a;
int sum = 0;
int carry = 0;
sum = a^b;
carry = (a&b)<<1;
return Add(sum, carry);
}
2.写一个函数,判断数是否为0
int IsZero(int num)
{
return !(a&0xFFFF);
}
3.不使用中间变量,交换两个数的大小
int Swap(int a, int b)
{
a = a+b;
b = a-b;
a = a-b;
}
int Swap(int a, int b)
{
a = a^b;
b = a^b;
a = a^b;
}
4.写两个函数,不用if判断和三目运算符,分别输出两个数中较大的数和最小的数
#include <math.h>
int Max(int a, int b)
{
return (a+b+abs(a-b))/2;
}
int Min(int a, int b)
{
return (a+b-abs(a-b))/2;
}