您好,欢迎访问三七文档
4.6C51的运算符1.将“=”右边的值赋给“=”左边的变量(注:不是相等运算符)2.C51+(加或正号);-(减或负号);*(乘号);/(除号);%(求余)优先级为:先乘除,后加减,先括号内,再括号外3.C51的关系运算符有六种:<(小于);>(大于);<=(小于等于);>=(大于等于)==(相等);!=(不相等)优先级:前四个高,后二个“==”和“!=”级别低4.C51&&(逻辑与);||(逻辑或);!(逻辑非)运算符的两边为关系表达式,逻辑表达式和关系表达式的值相同,以“0”代表假,以:“1”以上三种运算的优先级见图4.1。5.C51的按位操作的运算符有六种:&(按位与);|(按位或);∧(按位异或);~(位取反)(位左移);(位右移)(注:移位操作为补零移位)例1.a=0xf0H;表达式a=~a值为0FH例2.a=0xea;表达式a2值为A8H,即a值左移两位,移位后空白位补0*6.++i,--i(在使用i之前,先使i值加(减)1)i++,i--(在使用i之后,再使i值加(减)1)例设i原值为5如j=++i则j值为6,i值也为6如j=i++则j值为5,i值为6*7.复合赋值运算符+=,-=,*=,/=,%=,=,=,&=,∧=,|=例:a+=b相当于a=a+b。A=g相当于a=ag*8.对指针操作的运算符&—取地址运算*—①“&”与按位与运算符的差别,如果“&”为“与”,&②“*”与及指针定义时指针前的“*”的差别。如char*pt,这里c=*b;将以b的内容为地址的单元的内容送C例a=&b;取b变量的地址送变量a的“*”只表示pt为指针变量,不代表间址取内容的运算。例片内RAM20H单元存放着一个0~05H的数,用查表法,求出该数的平方值放入内部RAM21Hmain(){charx,*p;charcodetab[6]={0,1,4,9,16,25};p=0x20;x=tab[*p];p++;*p=x;}课堂测试1、数a=0x63,b=0xf0则a&b,a|b,a^b,~a,a4,a42、有两个数a和b(类型不限),根据位变量c,d的内容转向不同子程序C=0,d=0则m=a+bC=1,d=0则m=a-bC=0,d=1则m=a*bC=1,d=1则m=a/b分别使用switch、case指令和if指令写出完整程序。C&d+d自我提高:4.44.84.9
本文标题:单片机运算符
链接地址:https://www.777doc.com/doc-4542001 .html