所谓旋转就是一端的位数移出字长后又插入到另一端中
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
}