您的位置:首页 > 其它

移位操作之旋转移位

2015-07-15 10:06 344 查看
所谓旋转就是一端的位数移出字长后又插入到另一端中

unsigned char RoL(unsigned char c,int b)
{
int tmp;
for(int i=0;i<b;++i)
{
if(c & 0x80)
{
tmp=1;
}
else
{
tmp=0;
}

c <<= 1;

c |= tmp;
}

return c;

}

unsigned char RoR(unsigned char c,int b)
{
int tmp;
for(int i=0;i<b;++i)
{
if(c & 1)
{
tmp=1;
}
else
{
tmp=0;
}
c >>= 1;
c |= (tmp << (sizeof(c)*8-1));
}
return c;
}
void  main()
{
unsigned char a=5;

int b=RoL(a,2);  //10100
int c=RoR(a,2);  //01000001         00000101
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: