我们知道,大家用MCU写程序的时分,只要移位的句子,没有循环移位的句子。那么怎么完成循环移位呢,详见下述:
循环移位差异于一般移位的是移位时没有数位的丢掉。循环左移时,用从左面移出的位填充字的右端,而循环右移时,用从右边移出的位填充字的左边。这种状况在体系程序中时有运用,在一些控制程序中用得也不少。 设有数据阐明:
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程序编写体系程序的根底。