移位操作之旋转移位
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 }
相关文章推荐
- Android---------------appcompat_v7
- js中的一个闭包小例子
- myeclipse修改乱码(编码格式修改)
- cocos2dx中菜单menu 和 menuItem
- 博客标题栏增加一个"闪存“按钮
- STM32学习基本 存储器、CRC、电源
- java 记录项目中把秒换算为天、时、分、秒的方式
- iOS开发-键盘消失的几种方式
- 053第455题
- Android电子书项目实训【项目说明】【1】
- Android入门(52)——第七章 Android中常用的系统服务
- Cookie
- 手动脱RLPack壳实战
- OpenStack Cirros
- [NOI2007][BZOJ1491] 社交网络
- 变量的作用域及存储方式
- modelsim 莫名其妙“卡死失灵”
- hdu1292 组合数学+递推
- 微信突然出现redirect_uri 参数错误
- Murano Weekly Meeting 2015.07.14