51单片机C语言中<<=和|=的意思是什么?
for(i=0;i<8;i++){U8FLAG=2;while((!P2_0)&&U8FLAG++);Delay_10us();Delay_10us();Delay_10...
for(i=0;i<8;i++)
{
U8FLAG=2;
while((!P2_0)&&U8FLAG++);
Delay_10us();
Delay_10us();
Delay_10us();
U8temp=0;
if(P2_0)U8temp=1;
U8FLAG=2;
while((P2_0)&&U8FLAG++);
//超时则跳出for循环
if(U8FLAG==1)break;
//判断数据位是0还是1
// 如果高电平高过预定0高电平值则数据位为 1
U8comdata<<=1;
U8comdata|=U8temp; //0
}//rof
} 展开
{
U8FLAG=2;
while((!P2_0)&&U8FLAG++);
Delay_10us();
Delay_10us();
Delay_10us();
U8temp=0;
if(P2_0)U8temp=1;
U8FLAG=2;
while((P2_0)&&U8FLAG++);
//超时则跳出for循环
if(U8FLAG==1)break;
//判断数据位是0还是1
// 如果高电平高过预定0高电平值则数据位为 1
U8comdata<<=1;
U8comdata|=U8temp; //0
}//rof
} 展开
3个回答
展开全部
U8comdata<<=1 相当于 U8comdata = U8comdata<<1,
U8comdata|=U8temp 相当于 U8comdata = U8comdata | U8temp。
类似的还有:+=、 -=、 *= 、 /= 、%=、>>= 、&= 、~= 、 ^=。
这在C语言中叫做复合赋值运算符。格式如下:
变量 复合赋值运算符 表达式
解释:首先对变量进行某种运算(运算符就是"="前的运算符,运算对象就是"="后面的表达式或变量或常数),然后再将结果赋值回该变量(就是“=”)。
U8comdata|=U8temp 相当于 U8comdata = U8comdata | U8temp。
类似的还有:+=、 -=、 *= 、 /= 、%=、>>= 、&= 、~= 、 ^=。
这在C语言中叫做复合赋值运算符。格式如下:
变量 复合赋值运算符 表达式
解释:首先对变量进行某种运算(运算符就是"="前的运算符,运算对象就是"="后面的表达式或变量或常数),然后再将结果赋值回该变量(就是“=”)。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a <<= b; 就是 a = a << b;
a |= b; 就是 a = a | b;
a |= b; 就是 a = a | b;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询