& lt; & lt;c++中的操作符



我是c++新手,下面<< in语句的确切含义是什么,谢谢。

if (Val & (0x0001 << 0))
{}
else
{}

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

a << b

,其中ab为整型(char, short, long等),则a中的位左移b位,并在右侧填充零。也就是说,a乘以2^b

的例子:

12 << 3
12 (decimal) = 00001100 (binary)

左移3位:

00001100 becomes 01100000 

即96(即12 * 812 * 2^3)

表示将0x0001数字向左移位0位。在这种情况下,它什么也不做。

例如,如果它是(0x0001 << 4), 0x0001将变成0x0010。每向左移动一个位置就像把数字乘以2。

这是位移位运算符。

最新更新