左移两个不同的无符号整数值

时间:2014-09-22 23:49:24

标签: c++ c

当我将左移1到4位应用为 1&lt;&lt; 4 时,它会打印 16 作为值,但如果我将应用像那样的移位1 <&lt; 4&lt;&lt;&lt;&lt; 3&lt;&lt;&lt;&lt;&lt;&lt;&lt; 3&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; 3&lt; 我没有得到,有多少转移适用以及它是如何工作的? 但根据我的回答应该 24 应用 4 左移+ 3 转移

1 个答案:

答案 0 :(得分:3)

1 << 4 + 1 << 3

实际上被解释为

(1 << ( 4 + 1 )) << 3

请参阅?

1 << 5 --> 32
32 << 3 --> 256

如有疑问,请使用更多括号!

(1 << 5) + (1 << 3) --> 24