51单片机的C语言P2=P2<<1|P2>>7是什么意思?

2020-02-05 09:24发布

P2=0x01;
51单片机的C语言P2=P2<<1|P2>>7是什么意思?
表示的循环左移么?
像这样用过可以。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
zjw2012
2020-02-05 22:10
abcfanyuan 发表于 2012-5-12 12:48
但是先左移移1位后P2变了。然后再右移7位么?

P2=P2<<1|P2>>7;
1:P2左移之后,P2的值并没有改变,左移一位之后的值被保存在了CPU寄存器X(假定为x)里;
2:P2右移7位,P2的值并没有改变,右移7位之后的值被保存在CPU寄存器Y(假定为Y)里;
3:将X|Y的值赋给P2,此时P2的值才被改变。
此表达式的意义在:将P2循环左移一位。

一周热门 更多>