C语言位操作练习(三)


编写一个函数rightrot(x, n),该函数返回将x循环右移(即从最右端
移出的位将从最左端移入)n(二进制)位后所得到的值。

#include
int rightrot(int x, int n);
int rightrot(int x, int n)
{
        int t;
        t = ~(~0 << n);
        return ((x & t) << (sizeof(x) * 8 - n % (sizeof(x)*8))) | (x >> n);
}
main()
{
        printf("%d\n", rightrot(11, 29));
}

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注