解剖学教室谁是杀手:请问在C语言中如何实现带进位标志位的循环左移?

来源:百度文库 编辑:高校问答 时间:2024/05/11 21:43:16
我要对一个字节中的8个位进行倒序处理

C51不能实现带进位的移位,有两种办法完成这个功能,一种是在C中嵌入汇编,另一种就是使用特殊写法。

在这里我只介绍使用C特殊写法完成左移或者右移的方法,请你参考,如果遇到问题,欢迎交流。

看下面的例子:
CY=ACC&1;
...
CY=ACC&0x80;

这两个语句编译后会产生带进位右移和左移指令,如果你的数据不是在这两个寄存器,请你根据情况变通。

例如:
unsigned char c;
ACC=c;
CY=ACC&1;
......

我对C不熟.不过可以这样做:
放置需要转换的数据到可以进行位操作的地址.然后做8循环,将第N位复制到另一个数据地址的8-N位上就可以了.