【www.arisingsemi.com--IT认证】

移位
C语言中没有提供循环移位的操作符,但可以通过简洁的方式实现循环移位
设一个操作数x有s位则循环左移n位的操作为:
(x > (s - n));
同理右移n位位:
(x >> n) | (x ((s) - (n)))
#define ROTATE_RIGHT(x, s, n) ((x) >> (n)) | ((x) ((s) - (n)))
#define ROTATE_RIGHT(x, s, n) ((x) >> (n)) | ((x) >(8-2) //用来得到正常左移丢失的位和循环移位后其正确位置    b="00000001";
a="a"(8-2))|(a(N-n))|(a>>n)
循环右移n (an)
C语言的位运算功能是其区别于其他大多数高级程序设计语言的特色之一,用它可以方便实现一些特殊功能,灵活掌握是用C程序编写系统程序的基础。
其他对位进行操作的还有位域法;
几个对位操作的样例如下:
#define SETBIT(REG,N)  REG|=(1

本文来源:http://www.arisingsemi.com/it/55746/