我想知道 C/C++ 位移运算符的正确右侧操作数是什么。
在撰写本文时,内置算术类型均小于 256 位,因此单个字节就足够了。此外,x86 移位指令使用imm8. 总之,这表明右侧操作数应该是 an unsigned char,并且此处使用不同类型将需要类型转换。
imm8
unsigned char
这里有“最正确”的类型可以使用吗?我知道该标准对于位移位的其他方面出奇地宽松,所以也许这是另一个相同的情况?
c bit-manipulation
bit-manipulation ×1
c ×1