//方法一 移位
#include<stdio.h>
int mian()
{
int a = 4;
int b = 2;
int c = 0;
c = (a + b) >> 1; //因为数据以二进制存储,所以向右移位1即表示除2, 如果a+b的值都很大则会有溢出的可能。
printf("%d\n", c);
return 0;
}
//b - a表示a与b值中多余的部分,
//(b - a) >> 1 向右移动一位,即不用考虑a+b溢出的情况。
//#include<stdio.h>
//int main()
//{
// int a = 2;
// int b = 4;
// int c = 0;
// c = a + (b - a) >> 1;
// printf("%d\n", c);
//}
#include<stdio.h>
int mian()
{
int a = 4;
int b = 2;
int c = 0;
c = (a + b) >> 1; //因为数据以二进制存储,所以向右移位1即表示除2, 如果a+b的值都很大则会有溢出的可能。
printf("%d\n", c);
return 0;
}
//b - a表示a与b值中多余的部分,
//(b - a) >> 1 向右移动一位,即不用考虑a+b溢出的情况。
//#include<stdio.h>
//int main()
//{
// int a = 2;
// int b = 4;
// int c = 0;
// c = a + (b - a) >> 1;
// printf("%d\n", c);
//}