1 / 108

5.1 数据表示 5.2 运算方法 5.3 运算器

第五章 运算器部件. 5.1 数据表示 5.2 运算方法 5.3 运算器. 5.1 计算机中数据的表示方法. 计算机中的数据通常可以分为两中类型:. 符号数据 数值数据. 一、字符数据的表示方法. 1.ASCII 码 ( American Standard Code for Information Interchange ). 包括: 26 个英文字母的大小写、 10 个数字、各种常用符号、控制符号等,共计需要 128 个编码。. 高 3 位 011. 低 4 位 0100. 4 = (34) 16. 8421 2421 5421.

derora
Download Presentation

5.1 数据表示 5.2 运算方法 5.3 运算器

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第五章 运算器部件 5.1 数据表示 5.2 运算方法 5.3 运算器

  2. 5.1 计算机中数据的表示方法 计算机中的数据通常可以分为两中类型: • 符号数据 • 数值数据

  3. 一、字符数据的表示方法 1.ASCII码 (American Standard Code for Information Interchange) 包括:26个英文字母的大小写、10个数字、各种常用符号、控制符号等,共计需要128个编码。

  4. 高3位 011 低4位 0100 4= (34)16

  5. 8421 2421 5421 余3码 格雷码 • 2.BCD码:十进制数的编码格式 • (Binary Coded Decimal) 有权码 BCD 无权码

  6. BCD码表

  7. 二、数值数据的表示方法 • 计算机中有符号数的表示方法 • 机器数的定点表示与浮点表示 • 浮点数阶码的移码表示 • 实用浮点数格式

  8. 1.基本概念 • 真值:用“+”、“-”号表示的实际数值。 • 机器数:符号和数值一起编码表示的二进制数。 常用的机器数有原码、反码和补码三种表示方法。(运算是目的)

  9. 1)原码表示 2.计算机中有符号数的表示方法 用原码表示带符号的二进制数时, • 符号位用0表示正,1表示负; • 数值位保持不变。 原码表示法又称为符号•数值表示法。

  10. 则: [X1]原= 0.1011 [X2]原 = 1.1011 [X3]原= 01101 [X4]原 = 11101 若: X1= +0.1011 X2= -0.1011 X3= +1101 X4= -1101

  11. 原码特点是: 简单直观,与数据真值的转换方便,进行乘除运算比较容易。但是用原码进行加减运算不方便,既要考虑数的符号又要考虑其数值,比如说两个异号数相加,或两个同号数相减,就要做减法,机器中就需要增加减法器,为了使机器的结构简单,把减法运算转换为加法运算就引入了反码和补码的表示形式。

  12. 2)反码表示 • 符号位与原码相同: 即用0表示正,用1表示负; • 数值位与符号位相关: 正数反码的数值位和原码的数值位相同, 负数反码的数值位是原码的数值位按位取反.

  13. 若: X1=+0.1011 X2=-0.1011 X3=+1101 X4=-1101 则: [X1]反 = 0.1011 [X2]反 1.0100 [X3]反 = 01101 [X4]反 = 10010

  14. 3)补码表示 • 符号位与原码、反码相同; • 数值位与符号位相关: 正数补码的数值位与原码、反码相同;负数补码的数值位是原码的数值位按位取反,并在最低位加1。

  15. X1 = +0.1011 X2 = -0.1011 X3 = +1101 X4 = -1101 [X1]补 = 0.1011 [X2]补 = 1.0101 [X3]补 = 01101 [X4]补 = 10011

  16. 采用补码的最大优点: 就是符号位与数值位一起参加运算,并且可以将减法运算用加法实现,从而有利于运算器结构的简化,所以目前大多数计算机均采用补码这种机器数形式表示有符号数。

  17. 练习:已知下列各数的补码,求它们的真值。 [x]补=1.101100, [y]补=0.101011

  18. 数符 数值位 定点整数 约定 数符 数值位 定点小数 约定 3.机器数的定点、浮点表示 1)定点数表示法 约定小数点在固定的位置。有二种情况:

  19. 设数值位为 n 位 ,用原码表示时: 定点小数的表示范围: -(1-2-n)≤ X ≤ +(1-2-n) 定点整数的表示范围: -(2n-1)≤ X ≤ +(2n -1)

  20. 采用补码表示时,定点数的表示范围: -1≤ X ≤ 1-2-n ,-2n ≤ X ≤ 2n -1 0 -128 +127 在字长8位时定点整数的范围 简单直观; 但数值表示范围太小,运算时易产生溢出。

  21. 练习题: 设某机字长16位,问:在下列几种情况下所能表示数值的范围。 (1)无符号整数 (2)用原码表示的定点小数 (3)用补码表示的定点小数 (4)用原码表示的定点整数 (5)用补码表示的定点整数

  22. + + N = M × J E 2)浮点数表示法 (范围与精度) 相当于数学上的指数表示法。 可以将一个任意的二进制数N 表示为: 其中: M 称为尾数,为定点小数 E 称为阶码,为定点整数 J 基数,通常为2,在机内隐含

  23. 1 0 0 0 1 0 0 1 1 0 1 0 0 1 0 1 数符 尾数 阶码:包括符号位 举例:(-1101.00101)2在机内的浮点表示。 设机器字长为16位,尾数占10位. 解:(-1101.00101)2 = -0.110100101×24 即:尾数为-0.110100101 阶码为 +4 (0100),若都采用原码表示时,则有 机内的表示形式:

  24. 尾数(m位) 阶码(P位) … … … 浮点数的表示范围: 设阶码数值为 P 位,尾数数值为 m 位 ,符号各占一位

  25. 有两种情况: (1)采用原码和反码阶码和尾数表示时 浮点正数的表示范围为: +2-m×2-(2p-1) <= +X <= +(1-2-m)×2+(2p-1) 浮点负数的表示范围为: -(1-2-m)×2+(2p-1) <= -X <= -2-m×2-(2p-1)

  26. (2)用补码表示阶码和尾数时 浮点正数的表示范围为: +2-m×2-2p<= +X <= +(1-2-m)×2+(2p-1) 浮点负数的表示范围为: -1×2+(2p-1) <= -X <= -2-m×2-2p

  27. 练习:某浮点数字长64位。其中:阶码16位,含1位阶符,补码表示;尾数48位,含1位数符,原码表示,问其所能表示的正数范围是多少?练习:某浮点数字长64位。其中:阶码16位,含1位阶符,补码表示;尾数48位,含1位数符,原码表示,问其所能表示的正数范围是多少?

  28. 3)浮点数的规格化处理 规格化:要求浮点数尾数值的最高位为1。 例:将非规格化的浮点数0.0110×211和 -0.0011×20转换成规格化浮点数表示。 解:0.0110×211的尾数左移一位,变成0.1100 ,同时阶码的值减1, 得到其规格化表示为 0.1100×210。 -0.0011×20的尾数左移二位,变成0.1100 ,同时阶码的值减2, 得到的规格化表示为0.1100×2-10。

  29. 四、浮点数阶码的移码表示 定义:[X]移 = 2n + X 其中 X 为真值 2n为偏置值,n为X的位数 例:[+1011]移= [-1011]移= 10000+1011= 11011 10000-1011= 00101

  30. 移码与其它机器数相比有以下特点: • 用“0”表示负号、用“1”表示正号。 • 同一个真值其移码的表示与补码的表示只是符号位相反,数值位完全相同。 • 其编码能直接反映出所表示真值的大小,因此移码的作用是方便浮点数的运算。

  31. 编码 原码 反码 补码 移码 0000 +0 +0 0 -8 0001 +1 +1 +1 -7 0010 +2 +2 +2 -6 …… …… …… …… …… 0111 +7 +7 +7 -1 1000 -0 -7 -8 0 1001 -1 -6 -7 +1 1010 -2 -5 -6 +2 1011 -3 -4 -5 +3 1100 -4 -3 -4 +4 1101 -5 -2 -3 +5 1110 -6 -1 -2 +6 1111 -7 -0 -1 +7

  32. mf e m 数符 阶码 尾数 五、实用浮点数格式 IEEE 754标准的浮点数格式 其中:阶码用移码表示 尾数用原码表示

  33. mf e m 数符 阶码8位 尾数23位 实用短浮点格式(32位) 注意以下二点: 1) 阶码采用移码表示,偏置值为7FH(127) 2) 尾数规格化且采用隐蔽位技术

  34. IEEE 754标准中的三种浮点数 符号位 阶码位 尾数数码位 总位数 短浮点数: 1823 32 长浮点数: 1115264 临时浮点数: 11564 80

  35. 0100 0001 01111100 0000 0000 0000 0000 例题1:求(15.75)10的实用短浮点格式。 解:①将(15.75)10 转换为二进制; ②表示成规格化二进制格式,并注意隐蔽位,以确定尾数部分值; ③计算阶码的移码值 得到该数的短浮点数格式如下: 4 1 7 C 0 0 0 0 H (15.75)10 = 417C0000 H

  36. 阶码(8位) 尾数(23位) 隐蔽位 例题2 求出短浮点数C2308000H 所表示的真值。 1100 0010 0011 0000 1000 0000 0000 0000 1100 00100 [e]移= 10000100 e =[e]移 – 7FH=101 M= 1.011 0000 1000 0000 0000 0000 X = -1.0110001×2+101

  37. 本节内容小结: 机器数的定点数表示方法、表示范围。 机器数的浮点数表示方法、表示范围。 IEEE 754的实用短浮点数格式的转换。

  38. 5.2 运算方法 5.2.1 定点加减法运算及其实现 5.2.2 定点乘法运算及其实现 5.2.3 浮点数的运算方法

  39. 5.2.1 定点加减法及其实现 一、补码加减法运算 1. 运算规则 [X+Y]补 = [X]补 + [Y]补 [X-Y]补 = [X]补 + [-Y]补 

  40. 0.1 0 1 1 +1.0 0 1 0 1.1 1 0 1 [例1]:X=0.1011, Y= -0.1110, 求 X+Y。 解:因为 [X]补=0.1011 [Y]补=1.0010 所以 : [X+Y]补= 1.1101 X+Y = - 0.0011

  41. 0.1 0 1 1 +0.0 0 1 0 0.1 1 0 1 [例2]:X=0.1011, Y= -0.0010, 求 X-Y。 解:因为 [X]补=0.1011 [Y]补=1.1110 [-Y]补=0.0010 所以 : [X-Y]补= 0.1101 X-Y = + 0.1101

  42. 2.利用补码的优点 • 采用补码进行加、减法运算可将减法变为加法运算实现。 • 运算过程中,符号位与数值位一样参加运算。 • 符号位向更高位的进位自然丢失,可方便获得结果的符号。

  43. 二、定点加减法运算中的溢出问题 1.溢出的定义: 当运算结果超出所定义的有符号数的范围时即发生溢出。 溢出发生,结果就不正确了,因此需要进行检测和指示。 “机器字长和数据的表示方法”

  44. 0 1 0 1 1 +0 1 1 0 0 1 0 1 1 1 1 0 1 0 1 +1 1 0 0 1 0 1 1 1 0 例如:在字长5位时,溢出发生的情况 两个正数相加结果为负数的情况 两个负数相加结果为正数的情况

  45. 无溢出 2.溢出的检测和判断方法 1)用变形补码(双符号补码运算的结果)来判断。若运算结果的符号位为: 01 正溢:在正数端溢出 10 负溢:在负数端溢出 00 11

  46. 00 1011 + 00 0101 01 0110 00 1011 + 11 1011 100 0110 双符号位溢出的检测和判断举例 若X=0.1011 Y= -0.0101 [X]补= 00 1011, [Y]补= 11 1011 [-Y]补= 00 0101 X+Y,去掉最高位进位 结果无溢出 X-Y,结果溢出!

  47. 如何利用变形补码产生溢出信号 若定义 操作数: [X]补 = XS1 XS2. X1X2 … … Xn [y]补 = yS1 yS2. y1y2 … … yn 其和为: [Z]补 = zS1 zS2. z1z2 … … zn 则溢出信号为 OF = ZS1⊕ZS2

  48. 0 1 0 1 1 + 0 1 1 0 0 1 0 1 1 1 2)利用两种进位信号判定溢出 定义:符号位的进位为Cs 最高数值位的进位为C1 C1 =1 Cs =0 OF=1 则溢出信号为 OF =Cs⊕C1

  49. Si Ai Bi 全加器 Ci Ci-1 = Ai⊕ Bi ⊕Ci-1 Si = Ai· Bi ﹢(Ai⊕ Bi)·Ci-1 Ci 三、定点加减法运算的实现 1.全加器结构

  50. S1 S4 S3 S2 C4 C3 C2 C1 =1 =1 =1 =1 FA4 FA3 FA1 FA2 M B3 B2 B1 B4 A2 A1 A4 A3 四位串行进位加减法器 M=0 做 A+B M=1 做 A-B 2.串行进位的并行加法器

More Related