之前看到过着样一行代码
int mid = l + r >> 1;
第一次见这种用法。总结一下
1、除以二的幂次方。右移一位相当于除以二,右移n 位相当于除以二的n次方。
#include <iostream>
using namespace std;
int main ()
{
int m = 16;
int n = m >> 2;
cout << n;
}
输出结果为4,就是除以二的平方。
2、移除最低位(二进制)
#include <iostream>
using namespace std;
int main ()
{
int n = 10; // 整数n,二进制表示为1010
int m = n >> 1; // 将n右移1位,移除最低位
cout << m << endl; // 输出结果为5,二进制表示为0101
}
好了,其实感觉差不多少,就我目前而言,也就第一个用的比较多,感谢各位大佬指点。