
51单片机中C语言中P1=P1<<1|P1>>7怎么理解呀 求高手指点
3个回答
展开全部
将P1 的值先左移一位(最右端补0)得到值A 再将 P1 的值先右移七位(左端补0)得到值B
再将 A | B 的值重新赋给 P1
实际上就是:将P1的bit7和bit0 提取出来,然后分别重新置于P1的bit0和bit1位置,其余位均清0
再将 A | B 的值重新赋给 P1
实际上就是:将P1的bit7和bit0 提取出来,然后分别重新置于P1的bit0和bit1位置,其余位均清0
追问
为什么用P1>7,只用P1<<1不就能移位吗
追答
我回答的不是很准确,你的这个式子的意思应该是P1的循环左移一位,即bit7要移到bit0位置
刚没认真看,sorry
展开全部
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
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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
学习一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询