3章C51数据与运算.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
例:若a=E3H,将a值右循环位移两位。 #define uchar unsigned char main( ) { uchar a=0xe3,b,c; int n=2; b=a(8-n); c=an; a=c|b; } 键盘扫描原理图 #include reg51.h #define uchar unsigned char #define uint unsigned int uint old,new,push,rel,temp; uchar clmn_pat; void main (void) { for(clmn_pat = 0x10;clmn_pat 0;clmn_pat 1) { P1=P1 clmn_pat; P1=P1 | 0x0f; new=(new 4)|((~P1) 0x0f); } if((temp = new ^ old) 0) { push = temp new; rel = temp old; old = new; } } §3.7.5 自增减运算符、复合运算符及其表达式 自增减运算的作用是使变量值自动加1或减1。如: ++i、--i 在使用之前,先使i值加(减)1。 i++、i-- 在使用之后,再使i值加(减)1。 粗略地看,++i和i++的作用都相当于i=i+1,但++i和i++的不同之处在于++i先执行i=i+1,再使用i的值;而i++则是先使用i的值,再执行i=i+1。 注意: 自增运算(++)和自减运算 (--)只能用于变量,而不能用于常量表达式。 (++)和(--)的结合方向是“自右向左”。 凡是二目运算符,都可以与赋值运算符“=”一起组成复合赋值运算符。Cx51共提供10种复合赋值运算符,即: +=,-+,*=,/=,%=,=,=,=,^=,|= a+=b 相当于 a=a+b a-=b 相当于 a=a-b a*=b 相当于 a=a*b a/=b 相当于 a=a/b a%=b 相当于 a=a%b a=b 相当于 a=ab a=b 相当于 a=ab …… 等等 例如:a+=6相当于a=a+6;a*=5相当于a=a*5;b=0x55相当于b=b0x55;x=2相当于x=x2 3.7.6 条件运算符 条件运算符“?:”是C51语言中唯一的一个三目运算符,它要求有三个运算对象,用它可以将三个表达式连接在一起构成一个条件表达式。条件表达式的一般格式为: 逻辑表达式?表达式1:表达式2 其功能是先计算逻辑表达式的值,当逻辑表达式的值为真(非0值)时,将计算的表达式1的值作为整个条件表达式的值;当逻辑表达式的值为假(0值)时,将计算的表达式2的值作为整个条件表达式的值。例如:条件表达式max=(ab)?a:b的执行结果是将a和b中较大的数赋值给变量max。 Cx51所有运算符的优先级和结合性 优先级 类别 运算符名称 运算符 结合性 1 类型转换、成员 转换,下标,成员 ( ), [ ], -,. 右 2 单目 单目运算 !,~,++,--,,*,-,sizeof 左 3 算术 乘除模 *,/,% 左 4 算术 加减 +,- 左 5 字位 左右移 , 左 6 关系 比较 ,=,,=,==,!= 左 7 字位 按位逻辑 ,^,| 左 8 位 逻辑 ,||, 左 9 条件 条件运算 ?: 右 10 赋值 赋值,符合赋值 = 右 11 逗号 逗号运算 , 右 * * * * * * * * * * * * * * * * * * * * * * 表3.3 C51存储器类型及其数据长度和值域 存储器类型 长度(bit) 长度(byte) 值域范围 data 8 1 0~255 idata 8 1 0~255 pdata 8 1 0~255 xdata 16 2 0~65 535 code 16 2 0~65 535 带存储类型的变量的定义的一般格式为: [存储种类] 数据类型 [存储器类型] 变量名 带存储类型的变量定义举例: char data var1; bit bdata flags; float idata x,y,z; unsigned int pdata var2; unsigned char vector[10][4][4]; 表 3.4 存储器模式说明 存储模式 说明 small 参数及局部变量放入data区,默认存储类型是data,栈空间位于片内idata(片内RAM) compact 参数及局部变

文档评论(0)

ranfand + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档