用位运算求两个数的平均数

来源:互联网 发布:手机虚拟网络能否上网 编辑:程序博客网 时间:2024/05/21 18:15

用位运算求两个数的平均数

#include <iostream>using namespace std;int func(int x, int y) {    // (x&y)是x,y的相同部分    // (x^y)是x,y的不同部分, >>1 表示右移1位,相当于除以二    // 相同部分 加上 不同部分的一半,相当于两个数的平均数    return (x & y) + ((x ^ y) >> 1);}int main() {    cout << func(729, 271);    return 0;}

程序的运行结果如下:

这里写图片描述

今天就到这里了,拜~

这里写图片描述