请问在单片机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代表结束,跳出判断

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

请问在单片机C语言编程中这个“与”运算怎么用
Switch语句就是依据你的temp值进行匹配,将按键状态传入temp变量,然后通过case分支,匹配不同的按键状态

51单片机实现与或运算
1. 请注意,在进行51单片机的位逻辑操作时,应正确使用逻辑操作符。例如,位逻辑与操作应使用符号“&”,而不是C语言中的逻辑与操作符“&&”。2. 51单片机的位逻辑运算包括逻辑与(&)、逻辑或(|)、逻辑非(~)、逻辑异或(^)等,每种运算都有其特定的功能和应用场景。3. 在进行位逻辑运算时...

c语言单片机开发环境中"&"是啥意思啊??请各位大虾们帮帮小弟
“与”符号。就是布尔代数中的逻辑“与”。当两个数相与时,若两数均为真,则结果为真;否则为假。所以,testb = dat & (就是这个) amp; 0x01; 的意思是:amp固定为0x01,每次取dat的最低一位,若最低一位是1,则testb为1;若最低一位是0,则testb为0.你没有定义amp这个变...

在单片机C语言中如何对变量的某一位进行操作或赋值。
在C语言中,一般有两种方法来操作位,一种是使用C语言提供的位运算操作符,一种是使用位域。1、使用位域 在C语言中定义位域的一般格式如下:struct 位域结构名 { 位域列表 };struct:在C语言中定义位域所使用的关键字是struct。位域结构名:是一个C语言中的标识符,有字母、数字、下划线组成,而...

|=和&=在C语言编程中都实现什么功能?
|=用来给某个或某些标志位置1 &=用来给某个或某些标志位置0 如 short flag;flag|=0x1;表示把最低位置1 flag&=0xfffe;表示把最低位置0

单片机c程序中&与&&的区别是什么,还望各位大大告诉我~
&表示的是:地址符;通常连接变量用来表示在内存中以某一地址开始开辟的区域;(如指针&P)&&是双目运算符,表示‘与’,与数理逻辑中的‘合取’、集合中的‘取交集’是相似的。没用过,我不知道啊,应该会有警告或错误提示吧!?在JAVA语言里面是是这样的:两个都是双目运算符,都表示‘与’,...

c语言中?:和!是什么意思,怎么运用在编程中
!的意思是用来取非运算的,!true的结果就是 false !false 的结果是 true。写程序中,?:用的比较少,!主要用在条件判断中。延展回答:1、C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便...

C语言中:&&和||符号是什么意思?
&& 和 || 都是逻辑表达式,一般用法是 if(表达式1 || 表达式2) 或者 if(表达式1 && 表达式2)。|| 表示 或 满足括号里其中一个,整个表达式就为真,就满足if判定的条件执行if{}里的语句。&& 表示与 且 if括号内的表达式都为真 才能满足if判定的条件 才会执行if{}里的语句。

51单片机C语言中<<=和|=的意思是什么?
这两个都是特殊的赋值运算符。这类运算符的形式为OP=,为双目运算符,即需要左右都有操作表达式。其中左侧必须为可改变值的变量,右侧可以为任意表达式。对于OP=的运算符,其含义为:aOP=b; 等同于a = a OP b;对于题目中涉及的两个运算符,分别为:a <<= b; 等效于a = a << b; 即a左...

在单片机C语言中,==和>哪个运算的快。比如 if(a==1&&b==0&&c==0...
你首先要弄明白在C语言中,==和>都是如何运算的,计算机自身并不会判断大小,而是根据两个数相减的正负来判断大小的,例如,a>b,在处理器内部是要判断a-b的正负的,如果是正,则a>b成立,同理,a==1,就是判断a-1是不是等于0,所以==的运算速度要略快一些 ...

相似回答