所谓旋转就是一端的位数移出字长后又插入到另一端中
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 }
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/kai8wei/article/details/46889117