转载 C++用位运算实现循环移位
2015-05-18 18:27
302 查看
C++用位运算实现循环移位
循环移位区别于一般移位的是移位时没有数位的丢失。循环左移时,用从左边移出的位填充字的右端。
循环右移时,用从右边移出的位填充字的左侧。
这种情况在系统程序中时有使用,在一些控制程序中用得也不少。
例如:
a = 01111011,循环左移2位的正确结果是: b=11101101
b = a >> (8 - 2); //用来得到正常左移丢失的位和循环移位后其正确位置 //b=00000001;
a = a << 2; //a = 11101100
a = a | b; //a = 11101101
如果不是用中间变量 a=(a>>(8-2))|(a<<2)
通用:
总长度N(8 16 32)
循环左移n (a >> (N - n)) | (a >> n)
循环右移n (a << (N - n)) | (a >> n)
相关文章推荐
- C++用位运算实现循环移位
- C++用位运算实现循环移位
- 如何使用位运算实现循环移位?
- 在C语言使用位运算实现循环移位
- 在C语言使用位运算实现循环移位
- 字符串左旋--循环移位法(c++实现)
- 如何在C语言使用位运算实现循环移位
- 教你如何在C语言使用位运算实现循环移位
- 如何在C语言使用位运算实现循环移位
- 如何使用位运算实现循环移位?
- 混沌系统加密图像(通过行和列上进行循环移位实现)
- c++实现18位身份证校验码的计算公式(转载)
- 【转载】C++中实现委托(Delegate)
- C/C++通过COM调用.NET托管程序集的实现(转载)
- C++对象布局及多态实现探索之内存布局(转载)
- 用C++实现简单的文件I/O操作(转载自http://developer.51cto.com/art/201107/277311.htm)
- 【c++版数据结构】之循环双链表的实现(带头结点以及尾节点)
- C++循环链表之约瑟夫环的实现方法
- PAT程序设计考题——甲级1046(循环最短距离) C++实现
- (转载)c++builder/delphi中透明panel及透明窗口的实现方法_delphi教程