1. 程式人生 > >求兩個數的平均值三種方法

求兩個數的平均值三種方法

【一】基本方法

#include<stdio.h>
#pragma warning(disable:4996)
int main()
{
    int x = 7, y = 9,z=0;
    z = (x+y)/2;
    printf("%d", z);
    system("pause");
    return 0;
}

【二】用減法代替加法

#include<stdio.h>
#pragma warning(disable:4996)
int main()
{
    int x = 7, y = 9, z = 0;
    z = x - (x - y
) / 2; printf("%d", z); system("pause"); return 0; }

【三】位運算
z=(x&y)+((x^y)>>1)
假如x=11=1011;y=13=1101
x&y=1001=9;
x^y=0110=6;>>右移;(x^y)>>1=3;
即z=(x&y)+((x^y)>>1)=12

#include<stdio.h>
#pragma warning(disable:4996)
int main()
{
    int x = 7, y = 9, z = 0
; z = (x&y)+((x^y)>>1); printf("%d", z); system("pause"); return 0; }