140 likes | 334 Views
计算机组成原理第二章. 知识点一:机器层次的定点数表示. 主讲教师:秦磊华. 问题引入. 数据是计算机处理的对象,计算机中如何表示定点数?. 学习建议. 系统观: 与高级语言程序设计建立联系,关注计算机层数据类型的定义与程序设计中数据类型选择对运算器结果的影响;同时与运算方法与运算器设计建立联系。 构造观: 定点数在机器层次的表示。. 1. 定点数在机器内的表示. • 可表示定点小数和整数。 • 表现形式: X 0 .X 1 X 2 X 3 X 4 ……..X n. 定点整数. 定点小数. 2. 常见的四种机器数据.
E N D
计算机组成原理第二章 知识点一:机器层次的定点数表示 主讲教师:秦磊华
问题引入 数据是计算机处理的对象,计算机中如何表示定点数? 学习建议 系统观:与高级语言程序设计建立联系,关注计算机层数据类型的定义与程序设计中数据类型选择对运算器结果的影响;同时与运算方法与运算器设计建立联系。 构造观:定点数在机器层次的表示。
1.定点数在机器内的表示 •可表示定点小数和整数。 •表现形式:X0.X1X2X3X4……..Xn 定点整数 定点小数
2.常见的四种机器数据 1)真值:符号用“+”、“-”表示的数据表示方法。 2)机器数:符号数值化的数据表示方法, 用0、1表示符号。 3)设定点整数的形式为X0X1X2X3…Xn(X0为符号位)
4)原码 特点: a)表示简单 b)运算复杂:设置加法、减法器。(分同号和异号) c)0的表示不唯一: 000…000 ,100…00 整数表示范围:( 2n 1 ) ≤ [x]原 ≤ 2n 1
5)反码 x = −10101 则 [x]反 = 101010 整数表示范围:( 2 n 1 ) ≤ [x]反 ≤ 2 n 1
01101 +10101 100010 + 1 00011 [x]反= 01101 [y]反= 10101 特点: a)表示相对原码复杂; b)运算相对原码简单:符号位参加运算, 只需要设置加法器。但符号位的进位位需要加到最低位; c)0的表示不唯一: 000…000 , 111…11。
6)补码 特点: a)表示相对复杂 b)运算简单:只需设置加法器; c)0的表示唯一。 设 x= -10101 [x]补 = 101011 模:符号位进位后所在位的权值 整数表示范围:2 n ≤ [x]补 ≤ 2 n 1
7)移码 对真值X上加偏置值,使X在数轴上偏移到非负区域; 设 x= -10101 [x]移 = 001011 定点整数:[+0]移 =[-0]移 = 1000…0 移码定点整数的数据表示范围:-2n ≤[X]移 ≤ 2n 1
20 5 = 15,结果显然不对 3.符号位扩展 一些情况下,为减少占用空间或使用方便,较小的数值常用比较少的bit位来表示而不是使用全字长 。 带来运算上的问题 :[x]补= 010100 , [y]补= 1011 010100 + 1011 011111 解决问题的方法:按字长进行符号位扩展 010100 + 11 1011 1 001111
某计算机字长8位,三种机器数的符号扩展如下某计算机字长8位,三种机器数的符号扩展如下 X = - 1011 符号扩展通过符号扩展电路完成
4.应用举例 例1:32位机中,某C语言中有下列代码: Short s= 8193; unsigned short us=s; 则执行上述代码后,us的值为多少? 分析:Short型数为16位, 8193 对应的二进制数为:1101111111111111 变成无符号数后的值为65535 8192 = 57343 体会数据格式变化对运算结果的影响!
例2设某二进制数的存储形式为 11001 ,给出不同数据形式下其对应的真值 25 -9 通过数据类型定义:如C语言中的int, float, double, unsigned 等。 -6 -7 9 思考:在机器级数据形式为二进制,作为不同数据形式时,表示的真值不同。应用层如何面对这种不唯一性?
知识点一 回顾 原码、反码、补码和移码的数据表示及其特点; 不同机器数符号扩展方法; 体会数据格式变换对程序结果可能带来的影响; 体会为什么在高级语言层次要进行数据类型定义。