在C++中,经常会看到别人有int ans=1<<30;类似的代码。经查阅,<<是位运算符号,代表把1的二进制表示左移30位,左移一位(即在原来的数后面加一个0)相当于乘以2,左移30位应该是相当于乘以2的30次方。可以写几句简单的代码做一下验证,例如1<<4应该得到16,代码如下
#include<iostream>
using namespace std;
int main()
{
int a = 1 << 4;
cout << a << endl;
return 0;
}
同理,也有右移运算,又移一位相当于除2
#include<iostream>
using namespace std;
int main()
{
int a = 4 >>1;
cout << a << endl;
return 0;
输出结果应该是2.