C语言程序设计 清华大学郑莉安颖莲 第九讲 位运算枚举类型定义 编译预处理 参考书《C程序设计》 第八章、第十一章、第十章:§10.9、§10.10 Page 1
C语言程序设计 清华大学 郑莉 安颖莲 Page 1 第九讲 位运算 枚举 类型定义 编译预处理 参考书《C程序设计》 第八章、第十一章、第十章:§10.9、§10.10
C语言程序设计 清华大学郑莉安颖莲 本讲主要内容 。信息表示与存储 位运算 ●1 位字段结构体 ● 枚举类型 ●, 类型定义 ·编译预处理 Page 2
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语言程序设计 清华大学 郑莉 安颖莲 信息的表示与存储 —定点数与浮点数 • 定点数 - 小数点固定在某一位置上 • 机器数的浮点表示 - 由阶符、阶码、尾符、尾数组成