首页 > 代码库 > 移位操作之旋转移位
移位操作之旋转移位
所谓旋转就是一端的位数移出字长后又插入到还有一端中
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 }
移位操作之旋转移位
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。