2

示例:
x = 0xF0AA,现在当我这样做时x = x << 8,我会得到x == 0xAA00。新值的右侧(8 位)用零填充。是否有一种方法 int .NET Framework 可以用左侧的那些位(消失的部分)填充这些位?
结果应该是x == 0xAAF0

4

1 回答 1

2

你想要做的叫做循环移位。用两个班次和一个或来模拟很容易。

UInt32 RotateLeft(Uint32 n, int howManyBits) {
    return n << howManyBits | n >> (32 - howManyBits);
}
于 2013-05-07T06:53:06.633 回答