C语言程序设计(下)_第9讲 位运算,枚举,类型定义与编译预处理

C语言程序设计 清华大学郑莉安颖莲 第九讲 位运算枚举类型定 编译预处理 参考书《C程序设计》 第八章、第十一章、第十章:§10.9、§10.10
C语言程序设计 清华大学 郑莉 安颖莲 Page 1 第九讲 位运算 枚举 类型定义 编译预处理 参考书《C程序设计》 第八章、第十一章、第十章:§10.9、§10.10

C语言程序设计 清华大学郑莉安颖莲 本讲主要内容 傖息表尔与存储 位运算 位字段结构体 枚举类烈 类型定义 编译预处理
C语言程序设计 清华大学 郑莉 安颖莲 Page 2 本讲主要内容 • 信息表示与存储 • 位运算 • 位字段结构体 • 枚举类型 • 类型定义 • 编译预处理

C语言程序设计 清华大学郑莉安颖莲 信息的表尔与存储 二进制的编码表示 问题的提出 负数的表示方法 0的表示方法 解决方案之一:原码 符号绝对值表示 +0101011的原码:00101011 0101011的原码:10101011 问题:0的表示不唯 +0:00000000,-0:10000000
C语言程序设计 清华大学 郑莉 安颖莲 信息的表示与存储 ——二进制的编码表示 • 问题的提出: - 负数的表示方法 - 0的表示方法 • 解决方案之一:原码 - 符号—绝对值表示 - +0101011的原码:00101011 -0101011的原码:10101011 - 问题:0的表示不唯一 +0:00000000,-0:10000000

C语言程序设计 清华大学郑莉安颖莲 信息的表示与存储 二进制的编码表示 解决方案之二:补码 求补码的方法 正数:同原码 负数: 求反,产生中间码反码 (符号位不变,其他位求反) 末位加1 补码的运算规则 符号位直接参加运算,最高位进位自然丢失?(将减 法转换成了加法)
C语言程序设计 清华大学 郑莉 安颖莲 信息的表示与存储 ——二进制的编码表示 • 解决方案之二:补码 - 求补码的方法 正数:同原码 负数: • 求反,产生中间码——反码 (符号位不变,其他位求反) • 末位加1 - 补码的运算规则 • 符号位直接参加运算,最高位进位自然丢失?(将减 法转换成了加法)

C语言程序设计 清华大学郑莉安颖莲 信息的表尔与存储 定点数与浮点数 定点数 小数点固定在某一位置上 机器数的浮点表示 由阶符、阶码、尾符、尾数组成
C语言程序设计 清华大学 郑莉 安颖莲 信息的表示与存储 —定点数与浮点数 • 定点数 - 小数点固定在某一位置上 • 机器数的浮点表示 - 由阶符、阶码、尾符、尾数组成

C语言程序设计 清华大学郑莉安颖莲 位运算按位与(&) 运算规则 将两个运算量的每一个位进行逻辑与操作。 举例:计算3&5 先将3和5表示为补码,再按位与: 00000011 5:(&)00000101 3&5 00000001 用途: 将某一位置0,其它位不变。 例如:将char型变量a的最低位置0:a=a&0376; 取指定位。 例如:有 char c;inta; 取出a的低字节,置于c中:c=a&0377
C语言程序设计 清华大学 郑莉 安颖莲 Page 6 位运算——按位与(&) • 运算规则 - 将两个运算量的每一个位进行逻辑与操作。 • 举例:计算 3 & 5 先将 3 和 5 表示为补码,再按位与: 3: 0 0 0 0 0 0 1 1 5:(&) 0 0 0 0 0 1 0 1 3 & 5: 0 0 0 0 0 0 0 1 • 用途: - 将某一位置0,其它位不变。 例如:将 char 型变量 a 的最低位置 0 :a = a & 0376; - 取指定位。 例如:有 char c; int a; 取出 a 的低字节,置于 c 中:c = a & 0377;

C语言程序设计 清华大学郑莉安颖莲 立运算按位或() 运算规则 将两个运算量的每一个位进行逻辑或操作。 举例:计算3|5 先将3和5表示为补码,再按位或: 3: 00000011 5:()00000101 35 00000111 用途: 将某些位置1,其它位不变。 例如:将int型变量a的低字节置1: a =a Oxff
C语言程序设计 清华大学 郑莉 安颖莲 Page 7 位运算——按位或(|) • 运算规则 - 将两个运算量的每一个位进行逻辑或操作。 • 举例:计算 3 | 5 先将 3 和 5 表示为补码,再按位或: 3: 0 0 0 0 0 0 1 1 5:(|) 0 0 0 0 0 1 0 1 3 | 5: 0 0 0 0 0 1 1 1 • 用途: - 将某些位置1,其它位不变。 例如:将 int 型变量 a 的低字节置 1 : a = a | 0xff;

C语言程序设计 清华大学郑莉安颖莲 位运算按位异或() 运算规则 两个操作数进行异或:若对应位相同,则结果该位为0, 若对应位不同,则结果该位为1。 举例:计算071~052 071: 00111001 052:(^)00101010 071^052 00010011 用途: 使特定位翻转(与0异或保持原值,与1异或取反)。 例如:要使01111010低四位翻转: 01111010 (^)00001111 01110101
C语言程序设计 清华大学 郑莉 安颖莲 Page 8 位运算——按位异或(^) • 运算规则 - 两个操作数进行异或:若对应位相同,则结果该位为 0, 若对应位不同,则结果该位为 1。 • 举例:计算 071^052 071: 0 0 1 1 1 0 0 1 052:(^) 0 0 1 0 1 0 1 0 071^052 : 0 0 0 1 0 0 1 1 • 用途: - 使特定位翻转(与0异或保持原值,与1异或取反)。 例如:要使 01111010 低四位翻转: 0 1 1 1 1 0 1 0 (^) 0 0 0 0 1 1 1 1 0 1 1 1 0 1 0 1

C语言程序设计 清华大学郑莉安颖莲 位运取反() 单目运算符:对一个二进制数按位取反 例1:025:00000010101 例1 ~025:11111101010 例2:将int型数据a最低位置0: a=a&~1 例2 (~1是:11..10) (当a是16位或32位整数时都适用)
C语言程序设计 清华大学 郑莉 安颖莲 Page 9 位运算——取反(~) 单目运算符:对一个二进制数按位取反。 例1:025:0000000000010101 ~025:1111111111101010 例2:将 int 型数据 a 最低位置 0: a=a&~1 (~1是:11...10) (当a是16位或32位整数时都适用) 例 1 例 2

C语言程序设计 清华大学郑莉安颖莲 笕运算移位 左移运算(>) 例4 右移后,低位舍弃, 高位:无符号数补0 有符号数补0(逻辑右移) 补“符号位”(算术右移) 例5
C语言程序设计 清华大学 郑莉 安颖莲 Page 12 位运算——移位 • 左移运算(>) 右移后,低位舍弃, 高位:无符号数补0 有符号数补0(逻辑右移) 补“符号位”(算术右移) 例 3 例 4 例5
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- C语言程序设计(下)_第8讲 结构与联合.pps
- C语言程序设计(下)_第7讲 查找与排序算法.pps
- C语言程序设计(下)_第13讲 非线性结构及数据结构应用举例.pps
- C语言程序设计(下)_第12讲 数据结构基础(二).pps
- C语言程序设计(下)_第11讲 数据结构基础(一).pps
- C语言程序设计(下)_第10讲 文件.pps
- C语言程序设计(上)_第6讲 指针.pps
- C语言程序设计(上)_第5讲 函数.pps
- C语言程序设计(上)_第4讲 数组的概念及应用.pps
- C语言程序设计(上)_第3讲 C语言程序的基本控制结构.pps
- C语言程序设计(上)_第2讲 C语言基础.pps
- C语言程序设计(上)_第1讲 预备知识.pps
- C语言程序设计(上)_第0讲 前言.pps
- C语言程序设计(上)_cover.ppt
- 华北电力大学:数据结构_第8章(查找表).ppt
- 华北电力大学:数据结构_第7章(图).ppt
- 华北电力大学:数据结构_第6章(树).ppt
- 华北电力大学:数据结构_第5章(串).ppt
- 华北电力大学:数据结构_第4章(数组和广义表).ppt
- 华北电力大学:数据结构_第3章(链表).ppt
- 网格计算热点与综述_Issues with Production Grids.pdf
- 操作系统原理试题.doc
- 新标准中文版Office XP五合一基础培训教程-目录.ppt
- 《新标准中文版Office XP五合一基础培训教程》电子教案(PPT课件)第1章 Windows XP入门.ppt
- 《新标准中文版Office XP五合一基础培训教程》电子教案(PPT课件)第3章 Windows XP附件程序.ppt
- 《新标准中文版Office XP五合一基础培训教程》电子教案(PPT课件)第2章运行程序.ppt
- 《新标准中文版Office XP五合一基础培训教程》电子教案(PPT课件)第5章系统设置.ppt
- 《新标准中文版Office XP五合一基础培训教程》电子教案(PPT课件)第6章软件和硬件的安装与删除.ppt
- 《新标准中文版Office XP五合一基础培训教程》电子教案(PPT课件)第4章文件(夹)和程序的管理.ppt
- 《新标准中文版Office XP五合一基础培训教程》电子教案(PPT课件)第7章 Windows XP网络.ppt
- 《新标准中文版Office XP五合一基础培训教程》电子教案(PPT课件)第9章初步使用Word2002.ppt
- 《新标准中文版Office XP五合一基础培训教程》电子教案(PPT课件)第8章Word2002基本操作.ppt
- 《新标准中文版Office XP五合一基础培训教程》电子教案(PPT课件)第11章格式化文档.ppt
- 《新标准中文版Office XP五合一基础培训教程》电子教案(PPT课件)第12章使用表格.ppt
- 《新标准中文版Office XP五合一基础培训教程》电子教案(PPT课件)第10章编辑文档.ppt
- 《新标准中文版Office XP五合一基础培训教程》电子教案(PPT课件)第17章工作簿和工作表.ppt
- 《新标准中文版Office XP五合一基础培训教程》电子教案(PPT课件)第13章图文混排.ppt
- 《新标准中文版Office XP五合一基础培训教程》电子教案(PPT课件)第15章样式与模板.ppt
- 《新标准中文版Office XP五合一基础培训教程》电子教案(PPT课件)第18章函数和公式.ppt
- 《新标准中文版Office XP五合一基础培训教程》电子教案(PPT课件)第16章 Excel2002入门.ppt