第二章 计算机中的信息表示
复 习 1、(1101.01)2 =( )10 =( )8421BCD 2、(A2E)16 =( )10 3、23.87 D =( )2 2009 SCS-SWPU 计算机组成原理 复 习 1、(1101.01)2 =( )10 =( )8421BCD 2、(A2E)16 =( )10 3、23.87 D =( )2 4、(1010010110.11011)2 =( ? )8=( ? )16 5、有字长8bit的计算机,写出+10和-10的原码和补码。
计算机处理的信息 数 码 无符号数 英文字符 计算机 处理的信息 正数和负数 汉字 小数 指令 图像、声音
复习1:进位计数制- 进制之间的相互转换 1.3.4 数制间的相互转换 二进制 八进制 十六进制 十进制 2009 SCS-SWPU 计算机组成原理 复习1:进位计数制- 进制之间的相互转换 1.3.4 数制间的相互转换 二进制 八进制 十六进制 十进制
复习1:进位计数制间的转换总结 八进制 二进制 十进制 十六进制 二进制 八进制 十六进制 十进制 3位一组 整数:除2倒取余 二 进制 小数:乘2正取整 4位一组 十六进制 二进制 八进制 十六进制 按权展开 十进制
复习2——原码 +78 1 数值位 符号位 -78 1 介绍什么是原码 数值位 符号位
复习2——补码 变反加1 补码的转换方法:变反+1 正数的补码:与原码相同; 负数的补码:该数的反码加1。 2009 SCS-SWPU 计算机组成原理 复习2——补码 变反加1 正数的补码:与原码相同; 负数的补码:该数的反码加1。 补码的转换方法:变反+1
正数——原码、反码、补码 (相同) 数值位 符号位 原码 正数的反码和补码与原码 相同!! 反码 补码 1 1 1 1 +78 正数——原码、反码、补码 (相同) +78 1 数值位 符号位 1 原码 正数的反码和补码与原码 相同!! 介绍什么是原码 1 反码 1 补码
负数——原码、反码、补码 (不相同) -78 1 数值位 符号位 1 原码 负数的反码和补码与原码 不同!! 1 反码 +1 1 补码
第二章 A 数制 B 带符号数的表示 C 数的定点表示和浮点表示 D 指令系统及寻址方式
问题与思考 unsigned i=65; int j=65; float m=65,; char ch=65; ………….. 2009 SCS-SWPU 计算机组成原理 问题与思考 为什么编程时,数据要先定义,后使用? unsigned i=65; int j=65; float m=65,; char ch=65; …………..
编 码 第二章 计算机中的信息表示 2.1 数值型数据的表示方法 2.2 字符的表示 2.3 指令信息的表示 计算机表达数据要考虑哪些问题? 2009 SCS-SWPU 计算机组成原理 第二章 计算机中的信息表示 数值型数据的表示方法 2.1 计算机表达数据要考虑哪些问题? 字符的表示 2.2 编 码 指令信息的表示 2.3 不考虑符号? 考虑符号? 有小数的时候怎么办?
信息编码——1)数值型数据 数值型数据 考虑数据的符号: 考虑小数点 原码、反码、补码 定点数 浮点数 先讲数值型数据
原码实现加法 例1: (0111)2+ (0011)2=? 解决方案 补码 0 0111 +) 0 0011 (0 0111)原+ (0 0011)原=? 1 1 例2: (0111)2- (0011)2= ? 0 0111 =(0111)2+ (-0011)2 用原码做加法,先判断两个数的符号,符号相同则进行加法运算,否则是进行减法运算 先判断两个数的绝对值,用绝对值大的减去绝对值小的数,计算结果的负号和绝对值大的负号保持一致 +) 1 0011 =(0 0111)原+ (1 0011)原 1 1 1 !!!原因:原码的符号位是约定的,没有数值意义,不能直接参与运算
补码——思想来源(了解) -10=360o-10 哪些方法可以让指针指向5点? 方法1:顺时针拨5格 方法2:逆时针拨7格 数值范围固定的情况下的补数 字长为8的计算机 能表达多少个数呢? -10o 350o -10=360o-10 28
补码的实质——模 X X>=0 X 1>X>=0 [X]补= [X]补= 2n-|X| X<0 [+2]补 = 0 000 0010 [-2]补=1 0000 0000- 0000 0010 = 1111 1110 1111 1110 补码的实质:运用模的原理运算而来
补码实现加法 0 0111 +) 0 0011 0 0111 +) 1 1101 丢掉 例1: (0111)2+ (0011)2=? +) 0 0011 (0 0111)补+ (0 0011)补=? 1 1 例2: (0111)2- (0011)2= ? 0 0111 =(0111)2+ (-0011)2 用原码做加法,先判断两个数的符号,符号相同则进行加法运算,否则是进行减法运算 先判断两个数的绝对值,用绝对值大的减去绝对值小的数,计算结果的负号和绝对值大的负号保持一致 +) 1 1101 =(0 0111)原+ (1 0011)原 丢掉 1 1 =(0 0111)补+ (1 1101)补 !!!原因:补码的符号位是运算出来的
课堂练习1 字长为8bit A=1001 B= 1010 A - B=? [A]补 = 00001001 [-B]补 = 11110110 符号位参加运算 [A]补 = 00001001 [-B]补 = 11110110 [A]补 [-B]补 + = 11111111 [11111111]补 =[10000001]原 补码的特性:对补码进行求补得到原码
1.2.3 有符号数的表示 计算机中用补码表示 数有哪些优点和缺点?? 结论: 用户:用数的真值编程 计算机:加减法用补码表示数 1.2.3 有符号数的表示 计算机中用补码表示 数有哪些优点和缺点?? 补码的优点: 1、补码对0 的表示是唯一的。 2、补码的符号位可以和数值部分一起参加运算。 3、相同字长的机器数,补码比原码多表示一个数 (定点小数可以表示 –1,定点整数可以表示-2n) 4、可以化减为加,达到简化运算的目的 缺点: 表示数不够直观 结论: 用户:用数的真值编程 计算机:加减法用补码表示数 乘除法用补码或原码
课堂练习2 A=1010 B= 1001 A + B=? A=-1010 B= -1001 A + B=? 设:计算机用1位表达符号位,4位表达数值位 A=1010 B= 1001 A + B=? A=-1010 B= -1001 A + B=? 结果是否正确 引出定点数和浮点数 溢出:结果的大小超过了计算机表达数值的范围 原因:二进制的位数固定,表达范围则固定
考虑数据的小数点 根据小数点的位置是否固定,分为定点数和浮点数二种类型 定点数:表达数据范围窄,但是规则简单, 识别容易,硬件成本低 浮点数:表达的数据范围广,但是规则复杂, 识别过程难,硬件成本高 根据小数点的位置是否固定,分为定点数和浮点数二种类型 教材P33,浮点数要求到什么程度? 定点数:表达数据范围窄,但是规则简单,识别容易,硬件成本低 浮点数:表达的数据范围广,但是规则负责,识别过程难,硬件成本高 定点整数 定点小数 定点数的表示 浮点数的表示
2.1.3 数的定点表示和浮点表示 一、定点表示法 0~255 即: 0~(2n+1-1) 分辨率: 1 1、 定点整数 2009 SCS-SWPU 计算机组成原理 2.1.3 数的定点表示和浮点表示 一、定点表示法 1、 定点整数 (1) 无符号的定点整数(设字长为n+1) Xn Xn-1 Xn-2 X0 …… 数值部分 小数点位置 例如:字长为8位的计算机: 0 000 0000 → 0 0 000 0001 → 1 1 111 1111 → 255 (28-1 ) 字长为8的计算机 无符号的定点整数表示的范围: 0~255 字长为n的计算机: 即: 0~(2n+1-1) 分辨率: 1
2.1.3 数的定点表示和浮点表示 字长为8的计算机 字长为n+1的计算机: 分辨率: 1 (2) 带符号的定点整数(设字长为n+1) 2009 SCS-SWPU 计算机组成原理 2.1.3 数的定点表示和浮点表示 (2) 带符号的定点整数(设字长为n+1) 符号位 Xn Xn-1 Xn-2 …… X0 数值部分 小数点位置 字长为8的计算机 原码定点整数的范围:-127~127 补码定点整数的范围: -128 ~127 字长为n+1的计算机: 原码定点整数的范围: - (2n-1) ~(2n-1) 补码定点整数的范围: - 2n ~(2n-1) 分辨率: 1 例如:字长为8位的计算机: 0 000 0000 → 0 0 000 0001 → 1 0 111 1111 → 127 1 000 0000 → -0 1 000 0001 → -1 1 000 0010 → -2 1111 1111 → -127 补码: 0 000 0000 → 0 0 000 0001 → 1 0 111 1111 → 127 1 000 0000 → -128(-27) 1 000 0001 → -127 1 111 1110 → -2 1 111 1111 → -1 (27-1) (27-1) -(27-1) -(27-1)
. 2.1.3 数的定点表示和浮点表示 (3) 带符号的定点小数(设字长为n+1) 字长为n+1的计算机: 分辨率: 2 -n 符号位 …… 2009 SCS-SWPU 计算机组成原理 2.1.3 数的定点表示和浮点表示 (3) 带符号的定点小数(设字长为n+1) . 符号位 …… X0 X1 Xn-2 Xn 小数点位置 数值部分(尾数) 字长为n+1的计算机: 原码定点小数的范围: - (1-2 –n) ~(1-2-n ) 补码定点小数的范围: -1 ~(1-2 –n ) 分辨率: 2 -n 补码: 0. 000 0000 → 0 0. 000 0001 → 2-7 0. 111 1111 → 1-2-7 1. 000 0000 → -1 1. 000 0001 → -(1-2-7) 1. 111 1110 → -2-6 1. 111 1111 → -2-7 例如:字长为8位的计算机: 0. 000 0000 → 0 0. 000 0001 → 2-7 0. 111 1111 → 1-2-7 1. 000 0000 → -0 1. 000 0001 → -2-7 1. 000 0010 → -2-6 1.111 1111 →-(1-2-7)
2.1.3 小 结 设字长为 8 位(整数),求对应的真值各为多少? 1 2 127 … … … … 253 254 255 … … … … 2009 SCS-SWPU 计算机组成原理 2.1.3 小 结 设字长为 8 位(整数),求对应的真值各为多少? 二进制代码 无符号定点整 数对应的真值 原码对应 的真值 补码对应 定点小数 补码 00000000 00000001 00000010 … 01111111 10000000 10000001 11111101 11111110 11111111 1 2 127 … +0 +1 +2 +127 … +0 +1 +2 +127 … +0 +0 + 2-7 + 2-6 + 1-2-7 … 字长n+1: 表示范围:0~(2n+1-1) 表示精度:1 字长n+1: 表示范围: - (2n-1) ~(2n-1) 表示精度:1 字长n+1: 表示范围: - 2n ~(2n-1) 表示精度:1 字长n+1: 表示范围: -1 ~(1-2 –n) 表示精度:2 -n 128 129 -0 -128 -1 -1 -127 -(1-2-7) 253 254 255 … -125 -126 -127 … … -(2-6 +2-7) -2-6 -2-7 … -3 -2 -1
问题与讨论 用定点数的方法处理数据, 有哪些优缺点 优点:表达简单、直观、硬件成本低 缺点: 1、表达既有小数又有整数的数据,需要设置比例因子,并 加入溢出判断功能,随时调整比例因子 2、表达范围和分辨率固定,超出表达范围会产生溢出 正溢:运算结果超出能够表达的最大正数 负溢:运算结果超出能够表达的最小负数
2.1.4 数的浮点表示 N = M×RE 1、 浮点表示法 Ef E1 …… E2 Em M1 Mf M2 …… Mn 阶符 数符 阶码E 2009 SCS-SWPU 计算机组成原理 2.1.4 数的浮点表示 1、 浮点表示法 N = M×RE Ef E1 …… E2 Em M1 Mf M2 …… Mn 阶符 数符 阶码E 尾数M Mf 代表浮点数的符号 阶码E: 用补码和移码表示 尾数M: 用补码或原码表示 n 其位数反映浮点数的精度 m 其位数反映浮点数的表示范围
2.1.4 数的浮点表示 例如: 字长为16的计算机,有小数: (1001.011)2,若用浮点数表达,为多少? 2009 SCS-SWPU 计算机组成原理 2.1.4 数的浮点表示 例如: 字长为16的计算机,有小数: (1001.011)2,若用浮点数表达,为多少? 设阶码和尾数均占8位(含符号位),均补码表示 解: 1001.011=0.1001011×24 所以阶码: 0, 000 0100 尾数: 0,100 1011 于是: 16位浮点数存储为:0000 0100 0100 1011
2.1.4 数的浮点表示 N = M×RE 2、浮点数的规格化表示 例如:R=2(即二进制) 1/2≤ |M|<1 2009 SCS-SWPU 计算机组成原理 2.1.4 数的浮点表示 2、浮点数的规格化表示 例如:R=2(即二进制) 1/2≤ |M|<1 (即:让绝对值的最高有效位数为1) 原码规格化形式: 正数为: 0. 1XXXXXXX (M1=1) 负数为: 1.1XXXXXXX 补码规格化形式: 正数为: 0.1XXXXXXX 负数为: 1.0XXXXXXX (M1=0) N = M×RE 注意:M=-1/2的情况M1=1
2.1.4 数的浮点表示 3、浮点数的表示范围与精度(补码表示,阶码m+1位,尾数n+1位,规格化) 典型值 浮点数代码 真值 2009 SCS-SWPU 计算机组成原理 2.1.4 数的浮点表示 3、浮点数的表示范围与精度(补码表示,阶码m+1位,尾数n+1位,规格化) 典型值 浮点数代码 真值 绝对值最大负数 01…1,1.00…0 2(2m–1)×(–1) 绝对值最小负数 10…0,1.10…0 2(-2m)×(–2–1) 非0最小正数 10…0,0.10…0 2(-2m)×(2–1) 最大正数 01…1,0.11…1 2(2m–1)×(1–2–n) 上溢 下溢 上溢 负数区 正数区 最小负数 最大负数 最小正数 最大正数 2(2m–1)×(–1) 2(-2m)×(2–1) 2( 2m–1)×(1 – 2–n) 2(-2m) ×(–2–1)
2.1.4 数的浮点表示 4、IEEE754标准浮点格式 S 阶码(含阶符) 尾 数 1 8 23 32 1 11 52 64 2009 SCS-SWPU 计算机组成原理 2.1.4 数的浮点表示 4、IEEE754标准浮点格式 S 阶码(含阶符) 尾 数 数符 小数点位置 尾数为规格化表示 隐含约定尾数最高位为 “1”(隐含) 符号位 S 阶码 尾数 总位数 短实数 长实数 临时实数 1 8 23 32 1 11 52 64 1 15 64 80
2009 SCS-SWPU 计算机组成原理 2.1.4 数的浮点表示 6、真值与浮点数之间的转换 例2-33 浮点数的格式:字长32位,阶码8位,含1位阶符,补码表示,以2为底;尾数24位,含1位数符,补码表示,规格化。浮点数代码为(A3680000)16,求其真值。 解: (A3680000)16=(10100011,011010000000…0)2 E=(10100011)补 = - (1011101) 2 = - (93) 10 M= (011010…0)补=(0.11010…0) 2 = (0.8125) 10
2009 SCS-SWPU 计算机组成原理 2.1.4 数的浮点表示 6、真值与浮点数之间的转换 例2-34 浮点数的格式同上,将-(1011.11010…0)2写成浮点数代码(用16进制数表示)。 解: N= -(1011.11010…0)2 = - (0.101111010…0) 2 ×24 E= (4)10 =(00000100) 2 = (04) 16 M补= (1.010000110…0) 2 浮点数代码为 (00000100 ,1010000110…0) 2 = (04A18000) 16
2009 SCS-SWPU 计算机组成原理 2.1.3 数的定点表示和浮点表示 例 写出 –5810 的浮点数代码,要求尾数为补码,阶码分别为补码和移码两种形式(其他要求同上例)。 解: x = –58 = – 111010 二进制形式 规格化指数形式 x = – (0.111010) × 26 浮点计算机机中的二进制代码 [x]补 = 0000 0110 1000 1100 0000 0000 [x]阶移、尾补 = 1000 0110 1000 1100 0000 0000
2.1.3 数的定点表示和浮点表示 例:写出对应下图所示的浮点数的补码形式。 设 尾数11位,含1位数符,尾数5位,含1位数符。 解: 真值 2009 SCS-SWPU 计算机组成原理 2.1.3 数的定点表示和浮点表示 例:写出对应下图所示的浮点数的补码形式。 设 尾数11位,含1位数符,尾数5位,含1位数符。 最小负数 最大负数 最大正数 最小正数 负数区 正数区 下溢 上溢 解: 真值 浮点数代码 最大正数 215×(1 – 2–10) 0,1111; 0.1111111111 最小正数 2–16× 2–1 1,0000; 0.1000000000 最大负数 2–16×(-2–1 ) 1,0000; 1.1000000000 最小负数 215×(-1) 0,1111; 1.0000000000
码制表示法总结 [X]原、[X]反 、[X]补用“0”表示正号,用“1”表示负号; [X]移:用“1”表示正号,用“0”表示负号。 2009 SCS-SWPU 计算机组成原理 码制表示法总结 [X]原、[X]反 、[X]补用“0”表示正号,用“1”表示负号; [X]移:用“1”表示正号,用“0”表示负号。 如果X为正数,则[X]原=[X]反=[X]补。 如果X为0,则 [X]补 、[X]移有唯一 编码, [X]原、[X]反 有两种编码。 移码与补码的形式相同,只是符号位相反。
码制表示法小结 数据四种机器表示法中: (1)移码表示法主要用于表示浮点数的阶码。 2009 SCS-SWPU 计算机组成原理 码制表示法小结 数据四种机器表示法中: (1)移码表示法主要用于表示浮点数的阶码。 (2)补码表示对加减法运算十分方便,因此目前机器中广泛采用 补码表示法。 (3)在一些机器中,数用补码表示,补码存储,补码运算。而在有 些机器中,数用原码进行存储和传送,运算时改用补码。还有 些机器在做加减法时用补码运算,乘除法时用原码运算。
定点、浮点表示法小结 . 数值部分 小数点位置 Xn-1 Xn-2 Xn-3 X0 …… Xn-1 Xn-2 X0 …… Xn 符号位 2009 SCS-SWPU 计算机组成原理 定点、浮点表示法小结 数值部分 小数点位置 Xn-1 Xn-2 Xn-3 X0 …… 数值部分 小数点位置 Xn-1 Xn-2 X0 …… Xn 符号位 数值部分(尾数) 小数点位置 Xn-1 Xn-2 X1 X0 …… . 符号位 注意:无论什么表示方法,小数点都只是一个约点,对硬件而言并无区别,这些数都是在程序中的一种隐含约定 Ef E1 …… E2 Em M1 Mf M2 Mn 阶码E 阶符 尾数M 数符
问题与解答 unsigned i=65; int j=65; float m=65,; char ch=65; ………….. 2009 SCS-SWPU 计算机组成原理 问题与解答 为什么编程时,数据要先定义,后使用? unsigned i=65; int j=65; float m=65,; char ch=65; …………..
课堂思考 字长为1B的计算机有二进制码: 1000 0101 它代表什么呢? 除了数值,还可以代表其他信息吗? 用这个值:解析定点整数:原码、反、补码 解析定点小数:原码、反、补码 浮点数只知道思想即可,不需要转换 通过提问,引出非数值型数据的编码 除了数值,还可以代表其他信息吗?
第二章 计算机中的信息表示 2.1 数值型数据的表示方法 2.2 字符的表示 2.3 指令信息的表示 2009 SCS-SWPU 计算机组成原理 第二章 计算机中的信息表示 2.1 数值型数据的表示方法 2.2 字符的表示 2.3 指令信息的表示
非数值信息的编码 编码是以若干位数码或符号的不同组合来表示非数值性信息的方法,是人为地将若干位数码或符号的每一种组合指定一种唯一的含义。 01 02 03 04 05 06 07 08 09 10  ̄ / ﹀ ﹨ a b c d e f 11 12 13 14 15 16 17 18 19 20 g h i j k l m n o p 21 22 23 24 25 26 27 28 29 30 q r s t u v w x y z 18 13 3 0 12 5 19 3 利用上表的编号,如何使用表达“你好”的拼音 )?
编码和解码 利用上面的编码表,你的名字该如何表示? 数字序列“17 05 03”解码后能到什么? 编码表是否是唯一的?? 01 02 03 04 05 06 07 08 9 10  ̄ / ﹀ ﹨ a b c d e f 11 12 13 14 15 16 17 18 19 20 g h i j k l m n o p 21 22 23 24 25 26 27 28 29 30 q r s t u v w x y z 编码表是否是唯一的?? 不唯一有没有什么影响?? 利用上面的编码表,你的名字该如何表示? 数字序列“17 05 03”解码后能到什么? 但是,如果每个人都制定一个编码表,另外的人能懂吗?——影响计算机的普及
2009 SCS-SWPU 计算机组成原理 2.2.1 ASCII码 2.2 .1 ASCII码 (American Standard Code for Information Interchange )美国国家信息交换标准代码 字符数:128 英文字母(52个) 十进制数(10个) 专用符号(34个) 控制字符(32个) 位数——基本代码位7位+1位校验位 小型和微型计算机都用ASCII码.
常见字符的ASCII码 每8位为一个字符,最高位为0 ASCII码的出现 41H ~ 5AH: “A” ~ “Z” 统一了信息交换标准 使得计算机得以推广和普及 每8位为一个字符,最高位为0 41H ~ 5AH: “A” ~ “Z” 61H ~ 7AH: “a” ~ “z” 0AH: 换行符号LF 0DH: 回车符号CR 30H ~ 39H: “0” ~ “9”
2009 SCS-SWPU 计算机组成原理 2.2.2 汉字编码 汉字编码简介
“大” 汉字信息编码 汉字输入码:汉字依据输入码通过键盘输入汉字。 计算机内部 由内到外 由外到内 拼音码: da 五笔字型码: dddd 输入码:拼音码、字型码、区位码… … 拼音码: da 五笔字型码: dddd
“大” 汉字信息编码 汉字内码:汉字在计算机内部采用汉字内码存储。 计算机内部 由内到外 由外到内 国标码:汉字用两个字节表示,每个字节用七位码(高位为0) 94*94的阵列存储,国标码(即区位码),表示在第几行几列 为了避免和ASCII码的二义性,机内码在国标码的基础上,将最高位由0改成了1。 用0和1编码汉字,每个汉字在计算机内部由 2个字节表示 b7 b6 b5 b4 b3 b2 b1 b0 0 0 1 1 0 1 0 0 0 1 1 1 0 1 1 1 国标码 1 0 1 1 0 1 0 0 1 1 1 1 0 1 1 1 (机)内码
“大” 汉字信息编码 汉字字形码:汉字依据字形码通过显示器或打印机输出汉字。 计算机内部 由内到外 由外到内 点阵越密,字体越美观 字模点阵码用编码写应该如何表示“大”? 用0和1编码无亮点和有亮点形成字形信息, 便于显示… … 汉字字形码是一种字模点阵码。也有不同的处理汉字点阵信息的编码,如向量编码等
课后延伸与讨论 假设同学们使用智能ABC从键盘输入一段文字显示到显示器上,请描述计算机系统的工作处理过程? 相机的像素是什么,对产生的图像有什么影响?
2009 SCS-SWPU 计算机组成原理 作 业 第一次作业 P69 8(1,2,4),12,13 14, 15
Thank You ! www.themegallery.com