我试图找到关于整数上的 <<
和 >>
操作符是如何工作的确切信息,但我没有找到清晰的答案(文档在这方面并不是很好)。
有两个语义部分对我来说不太清楚。首先,“移入”的是哪些位?
- 从一侧移入零(即
0b1110_1010u8 << 4 == 0b1010_0000u8
),或者 - 位旋转(即
0b1110_1010u8 << 4 == 0b1010_1110u8
),或者 - 它是未指定的(就像整数溢出行为一样未指定),或者
- 其他情况。
另外,移位操作对带符号整数的操作如何呢?符号位是否也参与了移位操作?还是这是未指定的?
>>
操作。嗯,这确实不是非常详细的文档。我建议您打开一个问题来请求更详细的文档。 - mcartonrotate_right
的文档说明“请注意,这与>>
不是相同的操作!”,因此至少可以从中得知>>
不会旋转位。 - mcarton