曾经接触过单片机编程的朋友一定知道这样一种情况,在使用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语言,变相思考灵活运用也是非常重要的一项。希望本文能够帮助各位读者开拓C语言方面的知识面。