第5讲 编译预处理和位运算.ppt_第1页
第5讲 编译预处理和位运算.ppt_第2页
第5讲 编译预处理和位运算.ppt_第3页
第5讲 编译预处理和位运算.ppt_第4页
第5讲 编译预处理和位运算.ppt_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5讲编译预处理和位运算 一 编译预处理1 宏定义2 文件包含二 位运算 1 概念 用标识符来表示一个字符串 标识符叫宏名 一 宏定义 P5 2 无参宏定义1 无参宏定义的一般格式 define标识符字符串例如 definePI3 14159 2 作用 在宏定义之后 凡是该标识符出现的地方用对应的字符串来代替 上面的定义之后 凡是PI都用3 14159来代替 例输入半径 计算以该半径为圆的周长与圆面积 球的体积与表面积 include definePI3 14159voidmain floatr yzc ymj qbmj qtj scanf f 3 带参数的宏定义 P8 1 带参宏定义的一般格式 define标识符 参数表 字符串例如 defineADD x y x y 2 作用 在宏定义之后 凡是该标识符出现的地方用对应的字符串来代替 参数也作相应的替换 上面的定义之后 程序中如果出现ADD 4 5 则用4 5来代替 出现ADD a b 则用a b来代替 include definePI3 14159 defineAREA r PI r rvoidmain floatx s x 10 0 s AREA x printf s 1f n s 写出下面程序的结果 执行结果 s 314 2 include defineADD x y x y defineMAX x y x y x yvoidmain inta 4 b 5 c d c ADD a b d MAX a b printf c d td d n c d floatw z w ADD 5 6 5 8 z MAX 5 6 5 8 printf w 1f tz 1f n w z 写出下面程序的结果 执行结果 c 5d 5w 0 2z 5 6 写出下面程序的结果 include defineMUL x y x yvoidmain inta 3 b 4 c 5 d 6 m1 m2 m1 MUL a b m2 MUL a b c d printf m1 d n m1 printf m2 d n m2 执行结果 m1 12m2 29 修改方法1 include defineMUL x y x y voidmain inta 3 b 4 c 5 d 6 m1 m2 m1 MUL a b m2 MUL a b c d printf m1 d n m1 printf m2 d n m2 执行结果 m1 12m2 77 修改方法2 include defineMUL x y x yvoidmain inta 3 b 4 c 5 d 6 m1 m2 m1 MUL a b m2 MUL a b c d printf m1 d n m1 printf m2 d n m2 执行结果 m1 12m2 77 1 文件包含是C语言的一个重要功能 其作用是将另外一个文件的内容包含进来 C语言使用 include来实现 命令格式 include 文件名 include 二 文件包含 P10 例如 include stdio h include 2 文件包含通常用来解决程序使用C的库函数和公共符号常量的问题 例如 sqrt 函数 EOF 3 两种格式的区别 include 文件名 表示先在源程序文件的当前目录下查找文件 如果当前目录下未找到文件再到包含目录下查找 include表示只在包含目录下查找 包含目录是编译系统的一个参数 在VC6 0下通过 工具 菜单中的 选项 目录 来查询与设置 而在DEVC 下通过 工具 菜单中的 编译选项 目录 C包含文件 来查询与设置 二 位运算 P44 位是指二进制数中的一位 其值为0或者1 位运算包括与 或 非 异或 左移 右移 参与位运算的两个操作数必须是字符型或者整型 不能是实数 如果是操作数是负数 则用操作数的补码形式参与运算 如果是操作数是字符 则用操作数的ASCII码参与运算 在进行位运算时 最好把二个数化成二进制 然后根据位运算的运算规则进行计算 每个位运算的规则是不变的 但计算结果可能与参与计算的操作数的位数有关 1 按位与运算 includevoidmain chara 3 b 50 printf a 程序执行结果 a b 2 例1写出下面程序的执行结果 00000011 3 00110010 50 00000010 2 规则 二个为1才为1 否则为0 includevoidmain chara 3 b 50 printf a 程序执行结果 a b 48 例2写出下面程序的执行结果 11111101 3 00110010 50 00110000 48 2 按位或运算 includevoidmain chara 3 b 50 printf a b d n a b 程序执行结果 a b 51 例1写出下面程序的执行结果 00000011 3 00110010 50 00110011 51 规则 二个为0才为0 否则为1 includevoidmain chara 3 b 50 printf a b d n a b 程序执行结果 a b 1 例2写出下面程序的执行结果 11111101 3 00110010 50 11111111 1 3 按位异或运算 includevoidmain chara 3 b 50 printf a b d n a b 程序执行结果 a b 49 例1写出下面程序的执行结果 00000011 3 00110010 50 00110001 49 规则 相同为0 相异为1 includevoidmain chara 3 b 50 printf a b d n a b 程序执行结果 a b 49 例2写出下面程序的执行结果 11111101 3 00110010 50 11001111 49 4 按位非运算 includevoidmain chara 3 printf a d n a 程序执行结果 a 4 例1写出下面程序的执行结果 00000011 3 11111100 4 规则 0变成1 1变成0 includevoidmain chara 3 printf a d n a 程序执行结果 a 2 例2写出下面程序的执行结果 11111101 3 00000010 2 5 左移运算 includevoidmain chara 3 printf a 2 d n a 2 程序执行结果 a 2 12 例1写出下面程序的执行结果 规则 符号位参与移位 左边移出的位丢弃 右边补0 includevoidmain chara 3 printf a 3 d n a 3 程序执行结果 a 2 24 例2写出下面程序的执行结果 规律 每左移1位相当于乘2 6 右移运算 includevoidmain chara 24 printf a 2 d n a 2 程序执行结果 a 2 6

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论