位运算实现简单算数运算

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 
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;
}

你可能感兴趣的:(C/C++,面试)