2个回答
展开全部
C51不能实现带进位的移位,有两种办法完成这个功能,一种是在C中嵌入汇编,另一种就是使用特殊写法。
在这里我只介绍使用C特殊写法完成左移或者右移的方法,请你参考,如果遇到问题,欢迎交流。
看下面的例子:
CY=ACC&1;
...
CY=ACC&0x80;
这两个语句编译后会产生带进位右移和左移指令,如果你的数据不是在这两个寄存器,请你根据情况变通。
例如:
unsigned char c;
ACC=c;
CY=ACC&1;
......
在这里我只介绍使用C特殊写法完成左移或者右移的方法,请你参考,如果遇到问题,欢迎交流。
看下面的例子:
CY=ACC&1;
...
CY=ACC&0x80;
这两个语句编译后会产生带进位右移和左移指令,如果你的数据不是在这两个寄存器,请你根据情况变通。
例如:
unsigned char c;
ACC=c;
CY=ACC&1;
......
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询