a<<=2是什么意思,怎么样使用呢?

a<<=2是什么意思,怎么样使用呢?请求编写一个c语言程序加解读。

“<<=”是复合赋值操作符(按位左移)
a<<=2;//相当于 a=a<<2,相当于将a扩大四倍

将变量a的二进制值进行左位移两位,对于无符号位数字相当于乘以4。有符号数运算时需要注意,有可能发生符号位变动。


#include <iostream>

using namespace std;
int main(){
    for(int a=1;a<=10;a++){
        cout << (a << 2) << '\n';
    }
    return 0;
}

二进制整体左移两位,右侧补0,相当于十进制乘4