我们称之为“<<<”
int32variable <<< numberOfBits
等于
(int32variable << numberOfBits) | (int32variable >> (32 - numberOfBits))
(假设 << 和 >> 丢弃溢出的位)
有这样的运营商吗?
那将被称为位旋转,而 C# 没有这样的运算符。
这是一篇有趣的帖子: 有没有办法在 C# 中执行循环位移?
请注意,您的 int32integer 应该是类型uint
(无符号整数)。
我相信位旋转是英特尔指令集中的指令,但据我所知,CLR 没有位旋转指令。
这称为按位旋转。其他语言有,但 C# 没有。有关更多详细信息,请参阅此问题,但其要点是您当前的方法与您能做的一样好。
C# 中没有原始运算符可以执行您要查找的操作。
忽略方法调用的性能影响(如果您正在执行位移操作,您可能会关心),这将是 Int32 上扩展方法的一个很好的候选者。
我不认为有 C#。有关 C# 运算符的列表,请参阅此页面:http: //msdn.microsoft.com/en-us/library/6a71f45d (vs.71).aspx 。
我认为您在问题中展示的方式可能是最快的方法。我认为 Java 可能有一个像您所追求的那样的移位运算符,但不是 Java 程序员,我无法确认。