教你如何使用位运算实现循环移位
敬业的IT人
互联网
佚名
2008-1-3 20:18:52
循环移位区别于一般移位的是移位时没有数位的丢失。循环左移时,用从左边移出的位填充字的右端,而循环右移时,用从右边移出的位填充字的左侧。这种情况在系统程序中时有使用,在一些控制程序中用得也不少。
设有数据说明:
a=01111011,循环左移2位 正确结果: 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程序编写系统程序的基础。
进入讨论组讨论。- 最新文章
- 专家详解:复杂表达式的执行步骤[01-03]
- Linux 环境下串口通信的编程[01-03]
- 高手讲解:探索C++的秘密之详解extern[01-03]
- 数学与程序 一道游戏题目的快速解法[01-03]
- 用AVIFile函数制做AVI文件基本步骤[01-03]
- 高手解答:关于RICHEDIT的两个问题[01-03]
- 相关文章
