C语言里面问号和冒号表达式的问题请教 (0x30& 0x20) ? 0x00 : 0x28 这样的表达式是什么意思啊?

(0x30&0x20)?0x00:0x28这样的表达式是什么意思啊?... (0x30& 0x20) ? 0x00 : 0x28 这样的表达式是什么意思啊? 展开
 我来答
利雅竹
2011-09-24 · TA获得超过238个赞
知道答主
回答量:582
采纳率:0%
帮助的人:239万
展开全部
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char

sbit SER=P2^0;
sbit RCK=P1^1;
sbit SRCK=P1^0;
sbit E2=P1^2;
sbit A0=P1^3;
sbit A1=P1^4;
sbit A2=P1^5;
sbit E1_3=P1^6;

uchar code table[30] [32]=
{
0x00,0x80,0x00,0x80,0xFC,0x80,0x04,0xFC,0x45,0x04,0x46,0x48,0x28,0x40,0x28,0x40,
0x10,0x40,0x28,0x40,0x24,0xA0,0x44,0xA0,0x81,0x10,0x01,0x08,0x02,0x0E,0x0C,0x04,

0x00,0x00,0x41,0x84,0x26,0x7E,0x14,0x44,0x04,0x44,0x04,0x44,0xF4,0x44,0x14,0xC4,
0x15,0x44,0x16,0x54,0x14,0x48,0x10,0x40,0x10,0x40,0x28,0x46,0x47,0xFC,0x00,0x00,

0x01,0x00,0x21,0x08,0x11,0x0C,0x09,0x10,0x09,0x20,0x01,0x04,0xFF,0xFE,0x04,0x40,
0x04,0x40,0x04,0x40,0x04,0x40,0x08,0x40,0x08,0x42,0x10,0x42,0x20,0x3E,0x40,0x00,
0x10,0x80,0x10,0x80,0x51,0x04,0x51,0xFE,0x52,0x00,0x54,0x80,0x58,0x60,0x50,0x24,
0x57,0xFE,0x54,0x44,0x54,0x44,0x54,0x44,0x54,0x44,0x14,0x44,0x17,0xFC,0x14,0x04
};

void delay(uint z)
{
uchar x,y;
for (x=z;x>0;x--);
for(y=110;y>0;y--);
}
void Line_Ctrl (uchar line)
{
RCK=0;
_nop_();
_nop_();
switch(line)
{
case 0:A0=0;A1=0;A2=0;E1_3=1;break;
case 1:A0=1;A1=0;A2=0;E1_3=1;break;
case 2:A0=0;A1=1;A2=0;E1_3=1;break;
case 3:A0=1;A1=1;A2=0;E1_3=1;break;
case 4:A0=0;A1=0;A2=1;E1_3=1;break;
case 5:A0=1;A1=0;A2=1;E1_3=1;break;
case 6:A0=0;A1=1;A2=1;E1_3=1;break;
case 7:A0=1;A1=1;A2=1;E1_3=1;break;
case 8:A0=0;A1=0;A2=0;E1_3=0;break;
case 9:A0=1;A1=0;A2=0;E1_3=0;break;
case 10:A0=0;A1=1;A2=0;E1_3=0;break;
case 11:A0=1;A1=1;A2=0;E1_3=0;break;
case 12:A0=0;A1=0;A2=1;E1_3=0;break;
case 13:A0=1;A1=0;A2=1;E1_3=0;break;
case 14:A0=0;A1=1;A2=1;E1_3=0;break;
case 15:A0=1;A1=1;A2=1;E1_3=0;break;

}
E2=1;
RCK=1;
delay(25);
}
void wr_595(uint num,uchar t)
{
uchar j;
for(j=0;j<t;j++)
{
SRCK=0;
if((num&0x8000)==0x8000)
SER=1;
else
SER=0;
num<<=1;
SRCK=1;

}
SRCK=0;
}

void main()
{
uchar r,i,j;
uint h ,hh;
uchar p;
while(1)
{
for(r=0;r<16;r++)
{
hh=table[4+i] [j];
h=hh<<8;
h=h|table[4+i][16+j];
wr_595(h,r+1);
for(p=i;p<4+i;p++)
{
hh=table[p] [j];
h=hh<<8;
h=h|table[p][16+j];
wr_595(h,16);
}
Line_Ctrl(j);
}
i++;
if(i==26)
{
i=0;
}
}
}

最好把你调试过程中的问题描述下,这样看你的程序才能更有针对性。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
中华资
2011-09-24
知道答主
回答量:30
采纳率:0%
帮助的人:14.4万
展开全部
这个意思是假如(0x30& 0x20)是一个真命题的话,执行的结果就是冒号前面的,即0x00,反之,假如(0x30& 0x20)是一个假命题的话执行后面的语句 即0x28, 不知道你懂了没有!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
578020631
2011-09-24 · TA获得超过128个赞
知道答主
回答量:120
采纳率:0%
帮助的人:69万
展开全部
譬如(10>20)?10:20 这个例子 如果10确实大于20那输出冒号左面的 那就是10了
很显然10<20所以输出冒号右边的 20
(表达式1>表达式2)?表达式1:表达式2 这是一个条件运算符 运算符中只有条件运算符是三元(三目)的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式