单片机中?1:0是什么意思?

2019-07-15 13:07发布

今天看到的一个程序中        TR1 = 1;        uctimer1Cnt++;
        if(KEY == 0)
{
                LED = 1;
        }
        else{
                LED = (ucTimer1Cnt&0X80)?1:0;
        }

在这里LED = (ucTimer1Cnt&0X80)?1:0;,ucTimer1Cnt按位与0X80,得到ucTimer1Cnt最高位置1,?1:0是什么意思?整体是什么意思?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
zhifubao
1楼-- · 2019-07-15 14:55
 精彩回答 2  元偷偷看……
夜孤影
2楼-- · 2019-07-15 15:18
zhifubao 发表于 2016-9-5 10:20
LED = (ucTimer1Cnt&0X80)?1:0;等价于
if(ucTimer1Cnt&0X80)
{

意思就是说如过ucTimer1Cnt&0X80按位与后高位为1,则LED =1,否则为LED=0.
zhifubao
3楼-- · 2019-07-15 17:39
夜孤影 发表于 2016-9-5 10:33
意思就是说如过ucTimer1Cnt&0X80按位与后高位为1,则LED =1,否则为LED=0.

是的,这个是if的一种简写。
Doveove
4楼-- · 2019-07-15 19:44
X = A ?B :C 此为三目运算符。若A为真,X=B;若A为假,X=B。
徐小昊
5楼-- · 2019-07-15 21:50
一楼所说,三目运算符
夜孤影
6楼-- · 2019-07-15 22:39
 精彩回答 2  元偷偷看……

一周热门 更多>