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

来源:互联网 发布:淘宝上属性和属性值 编辑:程序博客网 时间:2024/05/16 04:45

C语言程序设计(第二版) 练习2-8 个人设计

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

代码块

#include <stdio.h>unsigned rightrot(unsigned x, int n);main(){    int a, b;    a = 21;    b = rightrot(a, 2);    printf("%d\n", b);    return 0;}unsigned rightrot(unsigned x, int n){    int i, m, k;    k = x;    for(i = 0; k != 0; i++)        k = k >> 1;    for(m = 1; m <= n; m++)        x = ((x - ((x >> 1) << 1)) << (i - 1)) + (x >> 1);    return x;}

如果程序设计有错误或更简洁的方法,欢迎并感谢您指正出示,谢谢!

阅读全文
0 0