如何在C ++中应用移位操作?

时间:2015-12-11 21:08:48

标签: c++

我写了以下代码。

int main() {
int i = 3;
int right = ((1 << i));
cout << right << endl;
system("pause");
}

据我所知,右边的价值不应该是6?因为二进制中的3是011,而左移的是110是6.然而我得到的输出是8.为什么会这样?

1 个答案:

答案 0 :(得分:4)

i << n,将i与2 n 相乘

你得到8分 1&lt;&lt; 3 = 1 * 2 3

1 << 0 = 000...0000001 = 1
1 << 1 = 000...0000010 = 2
1 << 2 = 000...0000100 = 4
1 << 3 = 000...0001000 = 8