C语言循环移位C语言循环移位
/*----------------------循环移位
--------------------------*/ #include
#include
#include
void HexInt(int n);
int BitMove(int value,int n); void main(void)
{
int n;
printf("Input an Integer Number:\t");
scanf("%d",&n);
HexInt(n);
HexInt(BitMove(n,2));...
C语言循环移位
/*----------------------循环移位
--------------------------*/ #include
#include
#include
void HexInt(int n);
int BitMove(int value,int n); void main(void)
{
int n;
printf("Input an Integer Number:\t");
scanf("%d",&n);
HexInt(n);
HexInt(BitMove(n,2));
HexInt(BitMove(n,-1));
while(1);
}
/***********************************************
函 数 名:HexInt
输入参数:n待转换的数据
输出参数:无
功 能:将输入的整数用二进制显示出来
***********************************************/
void HexInt(int n)
{
int i;
for(i = 15; i >= 0; i--)
{
printf("%d",(n >> i) & 0x01);
if(0 == (i % 4))
{
printf(" ");
}
}
printf("\n");
}
/***********************************************
函 数 名:Shr
输入参数:value待转换的数据
输出参数:无
功 能:循环右移一位
***********************************************/
int Shr(int value)
{
int x,y;
x = value >> 1;//value的左边15位
y = value & 0x0001;//获取value最右边一位
y <<= 15;
if (value < 0)//最左边为1,移位自动补1
{
x = (x & 0x7fff);//最左边变为0
}
x = x | y;
return x;
}
/***********************************************
函 数 名:Shr
输入参数:value待转换的数据
输出参数:无
功 能:循环左移一位
***********************************************/
int Shl(int value)
{
int x,y;
x <<= 1;
y = y & 0x80;
y >>= 15;
x = x | y;
return x;
}
/***********************************************
函 数 名:BitMove
输入参数:value待转换的数据,n n为移动方向和大小,
负数表示左移位,正数表示右移位
输出参数:无
功 能:循环左移一位
***********************************************/
int BitMove(int value,int n) {
int i;
if (n > 0)//右移位
{
for (i = 0; i < n; i++)
{
value = Shr(value);
}
}
else
{
n = -n;
for (i = 0;i < n;i++)
{
value = Shl(value);
}
}
return value;
}
本文档为【C语言循环移位】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。