C语言中循环移位解析.doc

C语言中循环移位解析.doc

ID:57687302

大小:14.00 KB

页数:2页

时间:2020-09-01

C语言中循环移位解析.doc_第1页
C语言中循环移位解析.doc_第2页
资源描述:

《C语言中循环移位解析.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C语言中循环移位简洁实现C语言中没有提供循环移位的操作符,但可以通过简洁的方式实现循环移位设一个操作数x有s位则循环左移n位的操作为:(x<

2、(x>>(s-n));同理右移n位位:(x>>n)

3、(x<<(s-n));实际编程中可以用宏定义实现循环移位:#defineROTATE_LEFT(x,s,n)((x)<<(n))

4、((x)>>((s)-(n)))#defineROTATE_RIGHT(x,s,n)((x)>>(n))

5、((x)<<((s)-(n)))例如:#include#defi

6、neROTATE_LEFT(x,s,n)((x)<<(n))

7、((x)>>((s)-(n)))#defineROTATE_RIGHT(x,s,n)((x)>>(n))

8、((x)<<((s)-(n)))intmain(){unsignedinta;scanf("%x",&a);printf("%08x",a);printf("%08x",ROTATE_LEFT(a,8*sizeof(int),4));printf("%08x",ROTATE_RIGHT(a,8*sizeof(int),8));retur

9、n0;}运行结果://原数//移1位后具体样例:设有数据  a=,循环左移2位正确结果: 分步实现:b=a>>(8-2);//用来得到正常左移丢失的位和循环移位后其正确位置b="";a="a"<<2;//左移a=""a=a

10、b;//a= 如果不是用中间变量一步实现:a=(a>>(8-2))

11、(a<<2); 总长度N(81632) 循环左移n(a>>(N-n))

12、(a>>n) 循环右移n(a<<(N-n))

13、(a>>n) C语言的位运算功能是其区别于其他大多数高级程序设计语言的特色之一,用它可以方便实现一些特殊功能

14、,灵活掌握是用C程序编写系统程序的基础。其他对位进行操作的还有位域法;几个对位操作的样例如下:#defineSETBIT(REG,N)REG

15、=(1<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。