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