<< C++中的运算符?

Nan*_* HE 2 c++ operators bit

我是C++的新手,<<下面的声明中的确切含义是什么,谢谢.

if (Val & (0x0001 << 0))
{}
else
{}
Run Code Online (Sandbox Code Playgroud)

Qua*_*nic 6

这是一个左移操作.如果你有:

a << b
Run Code Online (Sandbox Code Playgroud)

where ab是整数类型(char,short,long等),然后将a位移到左侧b,零填充在右侧.换句话说,a乘以2^b.

例:

12 << 3

12 (decimal) = 00001100 (binary)
Run Code Online (Sandbox Code Playgroud)

左转3个地方:

00001100 becomes 01100000 
Run Code Online (Sandbox Code Playgroud)

这是96(这是12 * 812 * 2^3)