求兩個數的平均值三種方法
阿新 • • 發佈:2019-02-15
【一】基本方法
#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;
}