printf("%d\n",(2<<1 +1))代码输出中(2<<1+1)什么意思

int main(void)
{

printf("%d\n", (2<<1+1));  //%d是输出控制符,d 表示十进制.
return 0;

}

<<在C/C++中是左移操作,表示将这个数的二进制左移若干位,在右边补若干位的0.
根据操作符运算优先级,实际为2<<(1+1),也就是2<<2,也就是将2的2进制(10)左移两位变为(1000),也就是8.
用十进制解读就是2乘以2的2次方,等于8
如果3<<4就是3乘以2的4次方,等于48