编译预处理 位运算.ppt

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译预处理 位运算

第十章、编译预处理 位运算 第一节、编译预处理 在c语言中,凡是以”#”开头的行,都成为是”编译预处理”命令行。注意后面没有分号(;) #include stdio.h #define PI 3.1415926 一、不带参数的宏定义 #define 宏名 替换文本 1.在define、宏名和替换文本之间用空格隔开 2.宏名一般用大写 3.宏名习惯在文件头处定义。有效范围从开头到文件结束。 4.替换文本可以包含已定义过的宏名 5.宏名一行写不下,可以在行末加’\’,然后第二行接住写 6.同一宏名不能重复定义 7.字符串里面处理的字符与宏名相同,不能替换的 #define X 4 #define Y X+X #define Z (3*Y) 求 M = Z*Z的值 二、带参数的宏定义 #define 宏名(参数) 表达式 宏展开时将表达式替换该宏名 1.带参数时,宏名和左(必须紧挨着,不得有空格。 2.同一宏名不能重复 3.注意括号的位置 三、文件包含 #include “文件名” #include 文件名 1.通常写在文件头,所以叫”头文件”.后缀通常写.h 2.一个文件中可以有多个头文件 例子 10-4 位运算 一、按位与() 00=0,01=0,11=1,10=0 二、按位或(|) 0|0=0,0|1=1,1|1=1,1|0=1 三、异或运算符(^) 0^0=0,0^1=1,1^1=0,1^0=1 四、取反运算符(~) ~1 = 0, ~0 = 1 五、左移运算符() 的功能是将一个数的各个二进制全部左移若干位。 左移后右边补0,移除的高位丢失。 六、右移运算符() 的功能是将一个数的各个二进制全部右移若干位。 移除的低位丢失,右移后左边补0还是补1,取决于计 算机系统。 * * M = Z*Z = (3*Y)*(3*Y)=(3*X+X)*(3*X+X) =(3*4+4)*(3*4+4) = 256 #define MUL(A,B) A*B #define MU(C,D) ((C)*(D)) 求M= MUL(3,4)、N=MU(M+5,M) M = 3*4 = 12 N = ((M+5)*(M+5))=(3*4+5)*(3*4)=204

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档