1 / 193

第二章 运算方法和运算器

第二章 运算方法和运算器. 一、数据和文字的表示 二、定点加法、减法运算 三、定点乘法运算 四、定点除法运算 五、逻辑运算 六、定点运算器的组成和结构. 2 .1 数据与文字的表示方法 -------------------------------------------------------------------------------- 2.1.1 数据格式 2.1.2 数的机器码表示 2.1.3 字符与字符串的表示方法 2.1.4 汉字的表示方法 2.1.5 校验码. 2.1.1 数据格式. 计算机中常用的数据表示格式有两种 :

Download Presentation

第二章 运算方法和运算器

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. 第二章 运算方法和运算器 一、数据和文字的表示 二、定点加法、减法运算 三、定点乘法运算 四、定点除法运算 五、逻辑运算 六、定点运算器的组成和结构

  2. 2.1 数据与文字的表示方法 -------------------------------------------------------------------------------- 2.1.1 数据格式 2.1.2 数的机器码表示 2.1.3 字符与字符串的表示方法 2.1.4 汉字的表示方法 2.1.5 校验码

  3. 2.1.1 数据格式 计算机中常用的数据表示格式有两种: 一是定点格式,二是浮点格式 定点格式容许的数值范围有限,但要求的处理硬件比较简单。 浮点格式容许的数值范围很大,但要求的处理硬件比较复杂。

  4. 1、定点表示法 定点格式:小数点位置固定的数。计算机中的定点数一般只采用纯整数或者纯小数形式,分别称为定点整数和定点小数。 问题:(1)n +1位纯小数或纯整数的表示范围?(最高位为符号位) (2)定点格式表示有什么缺点?

  5. 定点数x=x0x1x2…xn在定点机中表示如下(x0:符号位,0代表正号,1代表负号):定点数x=x0x1x2…xn在定点机中表示如下(x0:符号位,0代表正号,1代表负号): 纯小数的表示范围为(x0x1x2…xn各位均为0时最小;各位均为1时最大) 0≤|x|≤1-2-n(2.1) 纯整数的表示范围为 0≤|x|≤2n-1(2.2) X0 X1X2...Xn

  6. 目前计算机中多采用定点纯整数表示,因此将定点数表示的运算简称为整数运算。目前计算机中多采用定点纯整数表示,因此将定点数表示的运算简称为整数运算。

  7. 2、浮点表示法 浮点格式:小数点位置不固定的数。把一个数的有效数字和数的表示范围在计算机中分别表示。 (1)浮点数格式 一个任意进制的数N可以写成: N = RE · M M:浮点数的尾数(mantissa),一般用定点小数表示 N:浮点数的阶码(exponent),一般用定点整数表示 R: 基数(radix),一般为2,8或16。 机器中,浮点数的格式如下: Es E1E2……Em Ms M1M2……Mn 阶符 阶码 数符 尾数

  8. 或: Es Ms E1E2……Em M1M2……Mn 阶符 数符 阶码 尾数 或: Ms E1E2……Em M1M2……Mn 数符 阶码 尾数 问题:.浮点数的表示精度和表示范围如何决定?

  9. 为便于软件移植,按照 IEEE754 的标准,32位浮点数和64位浮点数的标准格式为: 31 30 23 22 0 32位浮点数 S E M 63 62 52 51 0 64位浮点数 S E M E:阶码,采用移码方式来表示正负指数。采用这种方式时,将浮点数的指数真值e 变成阶码E 时,应将指数 e 加上一个固定的偏移值127(01111111),即 E=e+127.

  10. 一个规格化的32位浮点数x的真值可表示为  x=(-1)s×(1.M)×2E-127e=E-127(2.5) 一个规格化的64位浮点数x的真值为 x=(-1)s×(1.M)×2E-1023 e=E-1023 (2.6) (2)浮点数的规格化 当尾数的值不为0时,其绝对值应大于等于0.5 ,否则要以修改阶码同时左右移小数点的办法,使其变成这一要求的表示形式。

  11. 规格化规定: 如果阶码以2为基,则应满足: 1/2〈=|M|〈1 对于正数,规格化浮点数的尾数(补码)最高位是S1=1 对于负数,规格化浮点数的尾数(补码)最高位是S1=0 问题: 1 . 如何进行规格化? 修改阶码,左右移尾数

  12. 问题2:规格化浮点数为什么提高了数据的表示精度?问题2:规格化浮点数为什么提高了数据的表示精度? 充分利用了有效位数。 可以证明(下去自己证明)

  13. (3)机器零 当一个浮点数的尾数为0,不论其阶码为何值;或阶码的值遇到它能表示的最小值还小时,不管其尾数为何值,计算机都把该浮点数看成零值,称机器零。 3、定点表示与浮点表示的比较 从以下两个方面: 数值表示范围 浮点数的运算比定点数的运算复杂 问题:在选择计算机中的数的表示方式时,应全面考虑哪些因素?

  14. 1.要表示的数的类型 2.可能遇到的数值范围 3.数值精确度 4.数据存储和处理所需要的硬件代价

  15. 3.十进制数串的表示方法 十进制数串在计算机内主要有两种表示形式: 1.字符串形式  字符串形式:一个字节存放一个十进制的数位或符号位。为了指明这样一个数,需要给出该数在主存中的起始地址和位数(串的长度)。 2.压缩的十进制数串形式   压缩的十进制数串形式:一个字节存放两个十进制的数位。它比前一种形式节省存储空间,又便于直接完成十进制数的算术运算,是广泛采用的较为理想的方法。

  16. 用压缩的十进制数串表示一个数,每个数位占用半个字节,其值BCD码或数字符的ASCII码的低4位表示。用压缩的十进制数串表示一个数,每个数位占用半个字节,其值BCD码或数字符的ASCII码的低4位表示。 符号位也占半个字节并放在最低数字位之后,其值选用四位编码中的六种冗余状态中的有关值,如用12(c)表示正号用13(d)表示负号。 在这种表示中,规定数位加符号位之和必须为偶数,当和不为偶数时,应在最高数字位之前补一个0。例如 +123 和-12分别被表示成: 1 2 3 C 0 1 2 D 要指明一个压缩的十进制数串,也得给出它在主存中的首地址和数字位个数(不含符号位),又称位长,位长为0的数其值为0。

  17. 4. 自定义数据表示 在传统的计算机体系结构中,用指令本身来说明操作数据的类型。 自定义数据表示则用数据本身来说明数据类型。表示形式有两种,即标志符数据表示和描述符数据表示。

  18. 标志符数据表示要求对每一个数据都附加标志符,其格式如下:      标志符 数据 其中标志符指明后面的数据所具有的类型,如整数、浮点数、BCD数、字符串等。   标志符数据表示的优点:能简化指令系统,便于程序调试和查错。 缺点:数据区域占用的存储空间增加,并使指令执行的速度减慢。

  19. 描述符数据表示主要用来描述多维结构的数据类型,如向量、矩阵、记录等。其格式为:描述符数据表示主要用来描述多维结构的数据类型,如向量、矩阵、记录等。其格式为: 描述符标志位部分指明这是一个数据描述符;特征标记部分指明数据的各种特征;长度部分指明数组中元素个数;起始地址部分指明数据块的首地址。   描述符标志位 特征标记 数据块长度 数据块起始地址

  20. 标志符与描述符表示的区别是: (1)标志符与每个数据相连,二者合起来存放在一个存储单元,而描述符要和数据分开存放。 (2)描述符表示中,先访问描述符,后访问数据,至少增加一次访存。 (3)描述符是程序的一部分,而不是数据的一部分。

  21. 2.1.2数的机器码表示 机器数:计算机中表示的带符号的二进制数。把符号位和数字位一起编码来表示相应的数的各种表示方法。 机器数有四种表示方法即原码、补码、反码和移码。

  22. 1.原码表示法 原码表示法用“0”表示正号,用“1”表示负号, 有效值部分用二进制的绝对值表示。

  23. 定点小数: X 1>x≥0 [X]原 = 1-X=1+|X| 0≥x>-1 完成下列数的真 值到原码的转换 X1 = + 0.1011011 X2 = - 0.1011011 [X1]原=0.1011011 [X2] 原=1.1011011

  24. 对于0,原码机器中往往有“+0”、“-0”之分,故有两种形式:对于0,原码机器中往往有“+0”、“-0”之分,故有两种形式: [+0]原=0.000...0 [-0]原=1.000...0

  25. 原码小数的表示范围: • 最大值 :1- 2-n • 最小值:-(1- 2-n) 例:若二进制原码小数的位数分别是8、16位,求其该数表示的最大值、最小值及所能表示数的个数? 8位: 127/128,-127/128,255 16位: 32767/32768 , -32767/32768 , 65535

  26. 定点整数: X 2n>X≥0 [X]原 = 2n-X=2n+|X| 0≥X>-2n 完成下列数的真值到原码的转换 X1 = + 0 1011011 X2 = - 0 1011011 [X1] 原 =01011011 [X2] 原 =11011011

  27. 原码整数的表示范围: [+0]原=00000000 ; [-0]原=10000000 • 最大值 : 2n-1 • 最小值:-(2n-1) 例:若二进制的位数分别是8、16,求其表示的最大值、最小值及表示数的个数 8位: 127,-127,255 16位: 32767 , -32767 , 65535

  28. 原码特点: • 表示简单,易于同真值之间进行转换,实现乘除运算规则简单。 • 进行加减运算十分麻烦。

  29. 2.补码表示法 模:计量器具的容量,或称为模数。4位字长的机器表示的二进制整数为: 0000~1111 共16种状态,模为16= 24。 整数N位字长的模值为 2n,一位符号位的纯小数的模值为2。 补码的定义:正数的补码就是正数的本身,负数的补码是原负数加上模。

  30. 定点小数: X 1>x≥0 [x]补= 2+X=2-|X| 0 ≥ X≥-1 完成下列数的真值到补码的转换 X1 = + 0.1011011 X2 = - 0.1011011 [X1]补=01011011 [X2]补=10100101

  31. 定点整数: X 2n>X≥0 [x]补= 2n+1+X=2n+1-|X| 0≥X≥- 2n 完成下列数的真值到补码的转换 X1 = + 0 1011011 X2 = - 0 1011011 [X1]补=01011011 [X2]补=10100101

  32. 补码的表示范围: • n+1位纯整数: 2n -1~ -2n • n+1位纯小数: 1- 2-n ~ - 1 对于0,[+0]补=[-0]补=0.0000   注意,0的补码表示只有一种形式。

  33. 原码与补码之间的转换 • 原码求补码 正数 [X]补=[X]原 负数 符号除外,各位取反,末位加1 例:X= -01001001 [X]原=11001001 , [X]补=10110110+1=10110111 [X]补= 28 +X=100000000-1001001= 10110111 10 0 0 0 0 0 0 0 - 1 0 0 1 0 0 1 1 0 1 1 0 1 1 1

  34. 3 反码表示法 正数的表示与原、补码相同,负数的补码符号位为1,数值位是将原码的数值按位取反,就得到该数的反码表示

  35. 定点小数: X 1> X ≥ 0 [X]反= (2- 2-n )+X 0 ≥ X > -1 X1=+0.1011011 , [X1] 反 =0.1011011 X2= -0.1011011 , [X2] 反 =1.0100100

  36. 定点整数: X 2n > X ≥ 0 [X]反= (2n+1 -1)+X 0 ≥ X > -2n X3=+1011011 , [X3] 反 =01011011 X4= -1011011 , [X4] 反 =10100100 对于0: [+0]反=00000000 ; [-0]反 =11111111

  37. 4.移码表示法 [X]移= 2n + X 2n >X≥-2n X1 = 0101 0101 [X1]补=0101 0101 [X1]移=1101 0101 X2 = -0101 0101 [X2]补=1010 1011 [X2]移=0010 1011

  38. 码制表示法小结 • [X]原、[X]反 、[X]补用“0”表示正号,用“1”表示负号; [X]移用“1”表示正号,用“0”表示负号。 • 如果X为正数,则[X]原=[X]反 =[X]补。 • 如果X为0,则 [X]补 、[X]移有唯一 编码, [X]原、[X]反 有两种编码。 • 移码与补码的形式相同,只是符号位相反。

  39. 上面的数据四种机器表示法中,移码表示法主要用于表示浮点数的阶码。上面的数据四种机器表示法中,移码表示法主要用于表示浮点数的阶码。 • 由于补码表示对加减法运算十分方便,因此目前机器中广泛采用补码表示法。在这类机器中,数用补码表示,补码存储,补码运算。也有些机器,数用原码进行存储和传送,运算时改用补码。 • 还有些机器在做加减法时用补码运算,在做乘除法时用原码运算。

  40. [例5]设机器字长16位,定点表示,尾数15位,数符1位,问:[例5]设机器字长16位,定点表示,尾数15位,数符1位,问: (1)定点原码整数表示时,最大正数是多少?最小负数是多少? (2)定点原码小数表示时,最大正数是多少?最小负数是多少?; [解:] (1)定点原码整数表示  最大正数值=(215-1)10=(+32767)10 0 111 111 111 111 111  最小负数值=-(215-1)10=(-32767)10 1 111 111 111 111 111 (2)定点原码小数表示 最大正数值=(1-2-15)10=(+0.111...11)2 最小负数值=-(1-2-15)10=(-0.111..11)2

  41. [例6]假设由S,E,M三个域组成的一个32位二进制字所表示的非零规格化浮点数x,真值表示为:[例6]假设由S,E,M三个域组成的一个32位二进制字所表示的非零规格化浮点数x,真值表示为: x=(-1)s×(1.M)×2E-128 问:它所表示的规格化的最大正数、最小正数、最大负数、最小负数是多少? [解:] (1)最大正数: 0 11 111 111 111 111 111 111 111 111 111 11 x=[1+(1-2-23)]×2127 (2)最小正数 : 0 00 000 000 000 000 000 000 000 000 000 00 x=1.0×2-128 (3)最小负数: 1 11 111 111 111 111 111 111 111 111 111 11 x=-[1+(1-2-23)]×2127 (4)最大负数: 1 00 000 000 000 000 000 000 000 000 000 00 x=-1.0×2-128

  42. 2.1.3 字符与字符串的表示方法      1.字符的表示方法 国际上普遍采用的字符系统是七单位的ASCII码(美国国家信息交换标准字符码,共128个元素。 其中95个编码,对应着计算机终端能敲入并且可以显示的95个字符,打印机设备也能打印这95个字符,另外的33个字符,其编码值为0—31和127,则不对应任何一个可以显示或打印的实际字符,它们被用作控制码,控制计算机某些外围设备的工作特性和某些计算机软件的运行情况。

  43. 2.字符串 字符串是指连续的一串字符,通常方式下,它们占用主存中连续的多个字节,每个字节存一个字符。 当主存字由2个或4个字节组成时,在同一个主存字中,既可按从低位字节向高位字节的顺序存放字符串的内容,也可按从高位字节向低位字节的次序顺序存放字符串的内容。

  44. 2.1.4 汉字的表示方法 1.汉字的输入编码   为了能直接使用西文标准键盘把汉字输入到计算机,就必须为汉字设计相应的输入编码方法。当前采用的方法主要有以下三类: 数字编码:常用的是国标区位码,用数字串代表一个汉字输入。 拼音码 :拼音码是以汉字拼音为基础的输入方法。 字形编码:字形编码是用汉字的形状来进行的编码。

  45. 2.汉字内码  汉字内码是用于汉字信息的存储、交换、检索等操作的机内代码,一般采用两个字节表示。 英文字符的机内代码是七位的ASCII码,当用一个字节表示时,最高位为“0”。为了与英文字符能相互区别, 汉字机内代码中两个字节的最高位均规定为“1”。

  46. 3.汉字字模码 字模码是用点阵表示的汉字字形代码,它是汉字的输出形式。  根据汉字输出的要求不同,点阵的多少也不同。字模点阵的信息量很大,所占存储空间也很大。因此字模点阵只能用来构成汉字库,而不能用于机内存储。字库中存储了每个汉字的点阵代码。当显示输出或打印输出时才检索字库,输出字模点阵,得到字形。

  47. 汉字的输入编码、汉字内码、字模码是计算机中用于输入、内部处理、输出三种不同 用途的编码,不要混为一谈。

  48. 2.1.5 校验码            元件故障、噪声干扰等各种因素常常导致计算机在处理信息过程中会出现错误。 为了防止错误,可将信号采用专门的逻辑线路进行编码以检测错误,甚至校正错误。 通常的方法是,在每个字上添加一些校验位,用来确定字中出现错误的位置。

  49. 奇偶校验 设x=(x0x1…xn-1)是一个n位字,则奇校验位C定义为 C=x0⊕x1⊕…⊕xn-1 (2.15) 式中⊕代表按位加,表明只有当x中包含有奇数个1时,才使C=1,即C=0。   偶校验位C定义为 C=x0⊕x1⊕…⊕xn-1 (2.16) 即x中包含偶数个1时,才使C=0。

  50. 假设一个字x从部件 A 传送到部件 B。在源点 A,校验位C可用上面公式算出来,并合在一起将(x0x1…xn-1C)送到B。假设在B点真正接收到的是x=(x'0x'1…x'n-1C '),然后计算 F=x'0⊕x'1⊕…⊕x'n-1⊕C '   若F=1,意味着收到的信息有错,若F=0,表明x字传送正确。奇偶校验可提供单个错误检测,但无法检测多个错误,更无法识别错误信息的位置。

More Related