用户注册



邮箱:

密码:

用户登录


邮箱:

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

发表随想


还能输入: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、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

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

加载中,请稍后...