用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c代码库

循环移位

2012-11-28 作者: 程序猿style举报

[c]代码库

/* 循环移位 */
#include <stdio.h>
 
void print_bin(const int a, const int size) {
    unsigned flag = 1 << (size * 8 - 1);
 
    while (flag != 0) {
        printf("%d", 0 != (a & flag));
        flag >>= 1;
    }
}
 
unsigned cycclic_right_shift(unsigned a, int n) {
    unsigned b = 0;
    int size = sizeof(unsigned) * 8;
    n %= size;
 
    b = a << (size - n);
    a = a >> n;
    a |= b;
 
    return a;
}
 
int main(void) {
    int size = 0;
    int a = 0;
    int n = 0;
 
    printf("a = ");
    scanf("%d", &a);
    printf("n = ");
    scanf("%d", &n);
 
    print_bin(a, sizeof(unsigned));
    printf("\n");
 
    a = cycclic_right_shift(a, n);
 
    print_bin(a, sizeof(unsigned));
    printf("\n");
 
    return 0;
}


网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...