51单片机中C语言中P1=P1<<1|P1>>7怎么理解呀 求高手指点

 我来答
zero_fn
2011-12-24 · TA获得超过2258个赞
知道小有建树答主
回答量:1173
采纳率:80%
帮助的人:455万
展开全部
将P1 的值先左移一位(最右端补0)得到值A 再将 P1 的值先右移七位(左端补0)得到值B
再将 A | B 的值重新赋给 P1

实际上就是:将P1的bit7和bit0 提取出来,然后分别重新置于P1的bit0和bit1位置,其余位均清0
追问
为什么用P1>7,只用P1<<1不就能移位吗
追答
我回答的不是很准确,你的这个式子的意思应该是P1的循环左移一位,即bit7要移到bit0位置
刚没认真看,sorry
zhang_xin_gui3
2011-12-24 · 超过16用户采纳过TA的回答
知道答主
回答量:55
采纳率:0%
帮助的人:46.4万
展开全部
P1<<1 左移一位
P1>>7 右移七位
的结果或运算
实际上是想做一个循环移位
p7 p6 p5 p4 p3 p2 p1 p0 左移一位 等于 p6 p5 p4 p3 p2 p1 p0 0
p7 p6 p5 p4 p3 p2 p1 p0 右移七位 等于 0 0 0 0 0 0 0 p7
p6 p5 p4 p3 p2 p1 p0 0
0 0 0 0 0 0 0 p7
+---------------------------------------
p6 p5 p4 p3 p2 p1 p0 p7
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
你好大鹤
2011-12-24 · TA获得超过105个赞
知道答主
回答量:180
采纳率:0%
帮助的人:95.6万
展开全部
学习一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式