当前位置:编程学习 > 汇编语言 >>

大家好,我想问一下单片机C语言中有没有带进位的循环右移或者左移的指令,与汇编语言中的RRC或者RLC类似。

追问:你好,请问一下,#define XX (x<<n) | (x>>(s-n)之后我要调用XX该如何实现了,例如S为8,我要左移i位,该如何书写程序了。
答案:C语言中没有提供循环移位的操作符,但可以通过简洁的方式实现循环移位
设一个操作数x有s位则循环左移n位的操作为:
(x << n) | (x >> (s - n));
同理右移n位位:
(x >> n) | (x << (s - n));
你可以#define XX (x<<n) | (x>>(s-n)
。。。 
补充下:上面是当 n<=s的情况  当n>s的话 只要把n改为 (n%s)就可以了

上一个:请高手帮我看看这段单片机汇编语言有什么错误啊,两天了,实在是找不出来哪有问题。
下一个:汇编语言中ADC怎么调用? 我要用汇编运行12345+67890=80235全部显示出来,但是不成功,不知道错哪了。

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,