黑马程序员技术交流社区
标题:
位运算应用4
[打印本页]
作者:
wangshengjie
时间:
2015-3-12 09:12
标题:
位运算应用4
/*
循环位移。要求将a进行右循环位移。将a右循环移n位,即将a中原来左面(16-n)位右移n位,
原来右端n位移到最左面n位。
*/
#include<stdio.h>
void main()
{
unsigned BitOperation(unsigned x, int n);
unsigned y, z;
int m;
scanf("y=%o,m=%d", &y, &m);
z = BitOperation(y, m);
printf("八进制y=%o,十进制y=%d\n", y, y);
printf("八进制z=%o,十进制z=%d\n", z, z);
}
unsigned BitOperation(unsigned x,int n)
{
unsigned a, b, c, d, e;
a = ~(~0 << n);
b = x&a;
c = x >> n;
d = b << (16-n);
e = c | d;
/*
//错误,与计算机系统有关,a右移n位,高位不是补0
unsigned a, b, c;
a = x >> n;
b = x << (16 - n);
c = a | b;
*/
return e;
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2