多个圆形左移和操作

时间:2017-08-29 18:49:57

标签: c# bit-shift

我不明白循环转变。

我搜索并找到了下面的方法,但输入的值没有给出预期的结果:

public static uint RotateLeft(this uint value, int count)
{
    return (value << count) | (value >> (32 - count));
}

211次转换时,输入158应该3

1 个答案:

答案 0 :(得分:4)

问题是您的预期结果是基于字节的,而您的代码是基于32位的。对于字节,请尝试:

public static byte RotateLeft(byte value, int count)
{
    return (byte)((value << count) | (value >> (8 - count)));
}