请问在单片机C语言编程中这个“与”运算怎么用

正在学习矩阵键盘,以下片段摘自,共16个键,按下对应的键,数码管上会显示出对应的数(十六进制数)
在单片机C语言编程中下面这个“与”是什么意思?
temp=temp&0xf0;
还有以下这句是什么意思?
switch(temp)
{
case 0xee:num=1;
break;
case 0xde:num=2;
break;
case 0xbe:num=3;
break;
case 0x7e:num=4;
break;
}

&就是按位与,就是两个变量位都为1,就是1,如果不同时是1,就为0;

temp=temp&0xf0; 高四位的状态由你的输入状态决定,低四位被直接置为0

Switch语句就是依据你的temp值进行匹配,将按键状态传入temp变量,然后通过case分支,匹配不同的按键状态
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-02-13
c里&就是按位与,就是两个变量位都为1,就是1,如果不同时是1,就为0
temp=temp&0xf0;就是高四位有效,第四位被屏蔽了,不管temp的低四位是什么,输出都是0.
而高四位,和你按键状态有关。追问

那这条语句呢
switch(temp)
{
case 0xee:num=1;
break;
case 0xde:num=2;
break;
case 0xbe:num=3;
break;
case 0x7e:num=4;
break;
}

追答

switch case 是判断 语句,对temp变量判断,然后
返回按键编号

追问

呃,可以说清楚一点吗,方便留个QQ吗

第2个回答  2013-02-21
&就是按位与,就是两个变量位都为1,就是1,如果不同时是1,就为0;
第3个回答  2013-02-13
&是按位‘与’。即只保留是1的位。
后边实际上就是
if()
else if
else if
else if
的功用相同追问

switch(temp) 这里这个temp是干嘛的,有什么用?

————————————————————————————————
case 0xee:num=1; 这句是要数码管显示1的(另外这一句可以说清楚点吗)
break; 那这句呢

追答

if(temp==0xee)
{
num=1;
}
break代表结束,跳出判断

本回答被提问者和网友采纳