我想这是一个哲学问题。
C 语言具有标准的按位运算集,包括OR
、AND
、XOR
、SHIFT LEFT/RIGHT
和NOT
。为什么语言中不包含向左/向右旋转运算符或函数?
这些运算符与其他按位运算符具有相同的复杂性,并且通常需要一条汇编指令,就像其他运算符一样。此外,我可以想到旋转运算符的很多用途,可能不少于,比如说,xor
运算符 - 所以对我来说听起来有点奇怪,它们没有与其他的一起包含在 C 中。
如果您确实需要在 C 或 C++ 中进行轮换,则有一个单独的常见问题解答关于它的最佳实践。对此问题的讨论是题外话。