白中英计算机组成原理第2章_运算方法与运算器(选用)_第1页
白中英计算机组成原理第2章_运算方法与运算器(选用)_第2页
白中英计算机组成原理第2章_运算方法与运算器(选用)_第3页
白中英计算机组成原理第2章_运算方法与运算器(选用)_第4页
白中英计算机组成原理第2章_运算方法与运算器(选用)_第5页
已阅读5页,还剩185页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2章 运算方法和运算器 2021年6月22日星期二2 目录目录 2.0 数据的类型数据的类型 2.1 数据与文字的表示方法数据与文字的表示方法 (掌握)(掌握) 2.2 定点加法、减法运算定点加法、减法运算 (掌握)(掌握) 2.3 定点乘法运算定点乘法运算 (理解)(理解) 2.4 定点除法运算定点除法运算 (理解)(理解) 2.5 定点运算器的组成定点运算器的组成 (了解)(了解) 2.6 浮点运算方法和浮点运算器浮点运算方法和浮点运算器(掌握)(掌握) 2021年6月22日星期二3 学习要求学习要求 l掌握定点和浮点数的表示方法,表示范围;掌握定点和浮点数的表示方法,表示范围; l掌握

2、定点数的补码加减法、常用的乘除法运算方法;掌握定点数的补码加减法、常用的乘除法运算方法; l掌握浮点数的加减运算方法;掌握浮点数的加减运算方法; l掌握数据校验的方法;掌握数据校验的方法; l理解溢出判断方法;理解溢出判断方法; l清楚运算器部件的组成结构及设计方法。清楚运算器部件的组成结构及设计方法。 2021年6月22日星期二4 2.0 数据的类型(数据的类型(1/2) l按数制分:按数制分: 十进制:在微机中直接运算困难;十进制:在微机中直接运算困难; 二进制:占存储空间少,硬件上易于实现,易于运算;二进制:占存储空间少,硬件上易于实现,易于运算; 十六进制:方便观察和使用;十六进制:方

3、便观察和使用; 二二-十进制:十进制:4位二进制数表示位二进制数表示1位十进制数,转换简单。位十进制数,转换简单。 l按数据格式分:按数据格式分: 真值:没有经过编码的直观数据表示方式,其值可带正负号,真值:没有经过编码的直观数据表示方式,其值可带正负号, 任何数制均可;任何数制均可; 机器数:符号化后的数值机器数:符号化后的数值(包括正负号的表示包括正负号的表示),一般位数固定,一般位数固定 (8、16、32),不能随便忽略任何位置上的,不能随便忽略任何位置上的0或或1; 2021年6月22日星期二5 2.0 数据的类型(数据的类型(2/2) l按数据的表示范围分:按数据的表示范围分: 定点

4、数:小数点位置固定,数据表示范围小;定点数:小数点位置固定,数据表示范围小; 浮点数:小数点位置不固定,数据表示范围较大。浮点数:小数点位置不固定,数据表示范围较大。 l按能否表示负数分:按能否表示负数分: 无符号数:所有均为表示数值,直接用二进制数表示;无符号数:所有均为表示数值,直接用二进制数表示; 有符号数:有正负之分,最高位为符号位,其余位表有符号数:有正负之分,最高位为符号位,其余位表 示数值。示数值。 u按编码不同又可分为原码、反码、补码、移码按编码不同又可分为原码、反码、补码、移码 2021年6月22日星期二6 2.1 数据与文字的表示方法数据与文字的表示方法 l2.1.1 数据

5、格式数据格式 l2.1.2 数的机器码表示数的机器码表示 l2.1.1 数据格式数据格式 l2.1.3 字符与字符串的表示方法字符与字符串的表示方法 l2.1.4 汉字的表示方法汉字的表示方法 l2.1.5 校验码校验码 2021年6月22日星期二7 l定点数:小数点固定在某一位置的数据;定点数:小数点固定在某一位置的数据; 纯小数:纯小数: u表示形式表示形式 有符号数有符号数 x=xSx-1x-2x-n 0 |x|1-2-n ;xs为符号位为符号位 无符号数无符号数 x=x0 x-1x-2x-n 0 x 1-2-n ;xs为符号位为符号位 u数据表示范围数据表示范围 0.00= 0 |x|

6、 1-2-n = 0.11 纯整数:纯整数: u表示形式表示形式 有符号数有符号数 x=x s x n-1 x 1 x 0 |x|2n-1 ;xs为符号位为符号位 无符号数无符号数 x=x n x n-1 x 1 x 0 0 x2n+1-1 ;xn为数值位为数值位 l注意:小数点的位置是机器约定好的,并没有实际的保存。注意:小数点的位置是机器约定好的,并没有实际的保存。 x0 x-1x-2x-3 x-n xnxn-1xn-2x1x0 2.1.1 数据格式数据格式定点数定点数 设采用设采用n+1位数据位数据 2021年6月22日星期二8 定点机的特点定点机的特点 l所能表示的数据范围小所能表示的

7、数据范围小 l使用不方便,运算精度较低使用不方便,运算精度较低 l存储单元利用率低存储单元利用率低 2021年6月22日星期二9 2.1.2 数的机器码表示数的机器码表示 l重点:重点: 1、原码、补码、移码的表示形式、原码、补码、移码的表示形式 2、补码的定义、补码的定义 3、原码、补码、移码的表示范围、原码、补码、移码的表示范围 2021年6月22日星期二10 1、原码表示法、原码表示法定义定义 l定义:定义: 定点小数:定点小数:x原 原 定点整数:定点整数:x原 原 l举例:举例: +0.110 原 原 0.110 -0.110原 原 1 - (-0.110) = 1.110 +110

8、原 原 0110 -110原 原 23- (-110) 1000 +110 = 1110 x1 x 0 1- x=1+|x| 0 x -1 x2n x 0 2n- x=2n+|x| 0 x -2n 实际机器中保存时实际机器中保存时 并不保存小数点并不保存小数点 xnxn-1xn-2x1x0 2021年6月22日星期二11 1、原码表示法、原码表示法特点特点 l0有两种表示法有两种表示法 +0原 原 = 0000 ; -0原原 = 1000 l数据表示范围数据表示范围 定点小数:定点小数:-1X1 定点整数定点整数: -2nX2n (若数值位(若数值位n=3即:即:-8X x 0 2+x = 2

9、 - |x| 0 x -1 x 2n x 0 2n+1+x = 2n+1-|x| 0 x -2n x为为n+1位位 (mod 2) (mod 2n+1) 实际机器中保存时实际机器中保存时 并不保存小数点并不保存小数点 xnxn-1xn-2x1x0 2021年6月22日星期二16 2、补码表示法、补码表示法特点特点 l0有唯一的表示法有唯一的表示法 -0补 补 24+(-0 ) mod 24 0000 +0补 补 l数据表示范围数据表示范围 定点小数:定点小数:-1X1 定点整数定点整数: -2nX2n (若(若n=3,则,则-8X x -2n l与与x补 补的区别: 的区别:符号位相反符号位相

10、反 l优点:优点: 可以比较直观地判断两个数据的大小;可以比较直观地判断两个数据的大小; u浮点数运算时,容易进行对阶操作;浮点数运算时,容易进行对阶操作; 表示浮点数阶码时,容易判断是否下溢;表示浮点数阶码时,容易判断是否下溢; u当阶码为全当阶码为全0时,浮点数下溢。时,浮点数下溢。 真值真值补码补码移码移码 -810000000 -710010001 -610100010 000001000 +100011001 +701111111 4位补码与移码位补码与移码 xnxn-1xn-2x1x0 2021年6月22日星期二22 原、补、移码的编码形式原、补、移码的编码形式 l正数:正数: 原

11、、补码的编码完全相同;原、补码的编码完全相同; 补码和移码的符号位相反,数值位相同;补码和移码的符号位相反,数值位相同; l负数:负数: 原码:原码: 符号位为符号位为1 数值部分与真值的绝对值相同数值部分与真值的绝对值相同 补码:补码: 符号位为符号位为1 数值部分与原码各位相反,且末位加数值部分与原码各位相反,且末位加1 移码:移码: 符号位与补码相反,数值位与补码相同符号位与补码相反,数值位与补码相同 2021年6月22日星期二23 课本课本P22例例6 以定点整数为例以定点整数为例,用数轴形式说明原码、反码、用数轴形式说明原码、反码、 补码、移码表示范围和可能的数码组合情况。补码、移码

12、表示范围和可能的数码组合情况。 2021年6月22日星期二242021年6月22日星期二24 课本课本P22例例7 将十进制真值将十进制真值(127,1,0,1,127)列表列表 表示成二进制数及原码、反码、补码、移码值。表示成二进制数及原码、反码、补码、移码值。 十进制真十进制真 值值 二进制真值二进制真值原码表示原码表示反码表示反码表示补码表示补码表示移码表示移码表示 -127-111 11111111 11111000 00001000 00010000 0001 -1-000 00011000 00011111 11101111 11110111 1111 0 +000 0000000

13、0 00000000 0000 0000 00001000 0000 -000 00001000 00001111 1111 +1+000 00010000 00010000 00010000 00011000 0001 +127+111 11110111 11110111 11110111 11111111 1111 符号位符号位 +0;- 1 数值位数值位 各位取反各位取反 数值位数值位 末位加末位加1 符号位符号位(正负数正负数) 取反取反 负数时负数时 2021年6月22日星期二25 P22例例8 设机器字长设机器字长16位,定点表示,尾数位,定点表示,尾数15位,数符位,数符1位,问

14、:位,问: (1)定点原码整数表示时,最大正数是多少?最小负数是多少?定点原码整数表示时,最大正数是多少?最小负数是多少? (2)定点原码小数表示时,最大正数是多少?最小负数是多少?定点原码小数表示时,最大正数是多少?最小负数是多少? 0111 1111 1111 1111 1111 1111 1111 1111 0111 1111 1111 1111 1111 1111 1111 1111 (215-1) = +32767 -(215-1) = -32767 (1-2-15) = +(1-1/32768) -(1-2-15) = -(1-1/32768) l定点原码整数定点原码整数 最大正数

15、最大正数 最小负数最小负数 l定点原码小数定点原码小数 最大正数最大正数 最小负数最小负数 2021年6月22日星期二26 2.1.1 数据格式数据格式浮点数浮点数 l浮点数:小数点位置可变,形如浮点数:小数点位置可变,形如科学计数法科学计数法中的数据表示。中的数据表示。 l浮点数格式定义:浮点数格式定义: N= Re M M:尾数:尾数(mantissa) ,是一个,是一个纯小数纯小数,表示数据的全部有效,表示数据的全部有效 数位,决定着数值的精度;数位,决定着数值的精度; R:基数:基数(radix) ,可以取,可以取2、8、10、16,表示当前的数制;,表示当前的数制; u微机中,一般默

16、认为微机中,一般默认为2,隐含表示。,隐含表示。 e: 阶码阶码(exponent) ,是一个,是一个整数整数,用于指出小数点在该数,用于指出小数点在该数 中的位置,中的位置,决定着数据数值的大小决定着数据数值的大小。 l机器数的一般表示形式机器数的一般表示形式 阶符阶符阶码阶码数符数符尾数尾数 数符数符阶符阶符阶码阶码尾数尾数 2021年6月22日星期二27 科学计数法的表示科学计数法的表示 l一个十进制数可以表示成不同的形式:一个十进制数可以表示成不同的形式: l同理,一个二进制数也可以有多种表示:同理,一个二进制数也可以有多种表示: 33 10 ()123.456123456 100.1

17、23456 10N 100100 2 ()1101.001111010011 20.1101.0011 2N 2021年6月22日星期二28 浮点数规格化浮点数规格化 l浮点数的表示浮点数的表示 1.1120=0.11121=11.12-1 机器数的表示不同,不利于运算机器数的表示不同,不利于运算 l规格化的目的规格化的目的 保证浮点数表示的唯一性;保证浮点数表示的唯一性; 保留更多地有效数字,提高运算的精度。保留更多地有效数字,提高运算的精度。 l规格化要求规格化要求 1/R|尾数尾数|1; l规格化处理:规格化处理: 尾数向左移尾数向左移n位位(小数点右移小数点右移),同时阶码减,同时阶码

18、减n; 尾数向右移尾数向右移n位位(小数点左移小数点左移),同时阶码加,同时阶码加n。 规格化规格化 右规右规 左规左规 2021年6月22日星期二29 浮点数的规格化浮点数的规格化 l尾数用原码表示时尾数用原码表示时 尾数最高数值位为尾数最高数值位为1; 尾数形如尾数形如0.1(正);或(正);或1.1(负);(负); 例如,例如,0.01125要规格化则变为要规格化则变为0.1124; 0.01125要规格化则变为要规格化则变为1.1124; l尾数用补码表示时尾数用补码表示时 尾数最高数值位和尾数符号位相反;尾数最高数值位和尾数符号位相反; 尾数形如尾数形如0.1(正);或(正);或1.

19、0(负)(负) 例如,例如,0.01125要规格化,则变为要规格化,则变为0.1124; 0.01125要规格化,则变为要规格化,则变为1.0124; 2021年6月22日星期二30 浮点数的数据表示范围浮点数的数据表示范围 0最大最大 负数负数 最小最小 正数正数 最小最小 负数负数 最大最大 正数正数 下溢区下溢区上溢区上溢区上溢区上溢区负数区负数区正数区正数区 尾数尾数负的最小值负的最小值负的最大值负的最大值 正的最小值正的最小值 正的最大值正的最大值 阶码阶码正的最大值正的最大值负的最小值负的最小值 负的最小值负的最小值 正的最大值正的最大值 l浮点数的溢出:阶码溢出浮点数的溢出:阶码

20、溢出 上溢:阶码大于所能表示的最大值;上溢:阶码大于所能表示的最大值; 下溢:阶码小于所能表示的最小值;下溢:阶码小于所能表示的最小值; l机器零:机器零: 尾数为尾数为 0,或阶码小于所能表示的最小值;,或阶码小于所能表示的最小值; 2021年6月22日星期二31 浮点数的最值浮点数的最值 非规格化数据非规格化数据规格化数据规格化数据 真值真值机器数机器数机器数机器数真值真值 最小最小 负数负数 最大最大 负数负数 最小最小 正数正数 最大最大 正数正数 设浮点数格式为设浮点数格式为 1位阶符位阶符m位阶码位阶码1位数符位数符n位尾数位尾数 移码表示移码表示-2m,+(2m-1)补码表示补码

21、表示-1,+(1-2-n) -12+( 2m-1 ) -2-n2-2m +2-n2-2m +(1-2-n)2+(2m-1) 1 111;1 0000 0 000;1 1111 0 000;0 0001 1 111;0 1111 同左同左同左同左 0 000;1 0111 -(2-1+2-n)2-2m +2-12-2m 同左同左同左同左 0 000;0 1000 2021年6月22日星期二32 0 1 1 0 1 1 1 5 1 9 【例例1】设浮点数的阶码设浮点数的阶码6位(含符号位),尾数位(含符号位),尾数 为为10位(含符号位),阶码采用补码表示,尾数位(含符号位),阶码采用补码表示,尾

22、数 采用原码表示,分析其浮点数表示范围。采用原码表示,分析其浮点数表示范围。 l最大正数最大正数 最大正数为最大正数为0.11120111 即(即(12 9) )231 该浮点数即为该浮点数即为规格化规格化数形式;数形式; 2021年6月22日星期二33 【例例1】设浮点数的阶码设浮点数的阶码6位(含符号位),尾数位(含符号位),尾数 为为10位(含符号位),阶码采用补码表示,尾数位(含符号位),阶码采用补码表示,尾数 采用原码表示,分析其浮点数表示范围。采用原码表示,分析其浮点数表示范围。 l 最小正数最小正数 非规格化数形式非规格化数形式 u最小正数为最小正数为0.0012100 u即即2

23、 9 2( (25)= 29 2-32 规格化数形式规格化数形式 u最小正数为最小正数为0.12100 u2 1 2( (25) 2 33 1 0 0 0 1 00 1 5 1 9 1 0 0 0 0 01 1 5 1 9 2021年6月22日星期二34 【例例1】设浮点数的阶码设浮点数的阶码6位(含符号位),尾数位(含符号位),尾数 为为10位(含符号位),阶码采用补码表示,尾数位(含符号位),阶码采用补码表示,尾数 采用原码表示,分析其浮点数表示范围。采用原码表示,分析其浮点数表示范围。 l最小负数最小负数 最小负数为最小负数为0.112011 即(即(12 9) )2( (251)= (

24、 (12 9) ) 231 该浮点数即为该浮点数即为规格化规格化数形式;数形式; 0 1 1 1 1 1 1 m 1 n 2021年6月22日星期二35 【例例1】设浮点数的阶码设浮点数的阶码6位(含符号位),尾数位(含符号位),尾数 为为10位(含符号位),阶码采用补码表示,尾数位(含符号位),阶码采用补码表示,尾数 采用原码表示,分析其浮点数表示范围。采用原码表示,分析其浮点数表示范围。 l 最大负数最大负数 非规格化数形式非规格化数形式 u最大负数为最大负数为0.0012100 u即即 2 9 2( (25)= 2 9 2-32 规格化数形式规格化数形式 u最大负数为最大负数为0. 12

25、100 u即即 2 1 2( (25)= 2-1 2 32 1 0 0 1 1 00 1 m 1 n 1 0 0 1 0 01 1 m 1 n 2021年6月22日星期二36 【例例2】设浮点数的阶码设浮点数的阶码6位(含符号位),尾数位(含符号位),尾数 为为10位(含符号位),阶码和尾数均采用补码表位(含符号位),阶码和尾数均采用补码表 示,分析其规格化浮点数表示范围。示,分析其规格化浮点数表示范围。 l 最大正数最大正数 阶码最大、尾数最大阶码最大、尾数最大 最大正数为最大正数为0.1112111 (12 9) )231 l 最小正数最小正数 最小正数为最小正数为0.10002 32 即

26、即2-322 1 2-33 注意:注意:不是不是 u因为因为0.01 2-32不是规格化数。不是规格化数。 0 1 1 0 1 1 1 5 1 9 1 0 0 0 10 00 1 5 1 9 1 0 0 0 0 01 1 5 1 9 2021年6月22日星期二37 【例例2】设浮点数的阶码设浮点数的阶码6位(含符号位),尾数位(含符号位),尾数 为为10位(含符号位),阶码和尾数均采用补码表位(含符号位),阶码和尾数均采用补码表 示,分析其规格化浮点数表示范围。示,分析其规格化浮点数表示范围。 l 最小的负数最小的负数 最小负数为最小负数为1.000231 即即231(1)= 231 l 最大

27、的负数最大的负数 最大负数为最大负数为0.10012 32 即(即( 2 9+ 21 ) )2 32 注意:因有规格化要求,不是注意:因有规格化要求,不是 0 1 1 1 0 0 1 5 1 9 1 0 0 1 0 1 1 1 5 1 9 1 0 0 1 1 1 1 1 5 1 9 2021年6月22日星期二38 浮点数的浮点数的IEEE754标准表示标准表示 lIEEE(Institute of Electrical and Electronics Engineers) 美国电气及电子工程师学会美国电气及电子工程师学会 IEEE是一家总部在美国的工程技术和电子专家的组织;是一家总部在美国的工

28、程技术和电子专家的组织; IEEE致力于电气、电子、计算机工程和与科学有关的领域致力于电气、电子、计算机工程和与科学有关的领域 的开发和研究,也是计算机网络标准的主要制定者。的开发和研究,也是计算机网络标准的主要制定者。 l为便于软件移植,按照为便于软件移植,按照 IEEE754 标准,实际机器内标准,实际机器内32位浮点位浮点 数和数和64位浮点数的标准格式如下:位浮点数的标准格式如下: 022233031 SEM 2323位尾数,仅为数值部分位尾数,仅为数值部分8 8位阶码,包括阶符位阶码,包括阶符1 1位数符位数符 3232位浮点数位浮点数 051526263 SEM 6464位浮点数位

29、浮点数 2021年6月22日星期二39 32位浮点数的位浮点数的IEEE754 标准表示标准表示 l数符数符S:表示浮点数的符号,占表示浮点数的符号,占1 1位,位,0 0正数、正数、1 1负数;负数; l尾数尾数M:2323位,原码纯小数表示,小数点在尾数域的最前面;位,原码纯小数表示,小数点在尾数域的最前面; 由于原码表示的规格化浮点数要求,由于原码表示的规格化浮点数要求,最高数值位始终为最高数值位始终为1,因,因 此该标准中隐藏最高数值位此该标准中隐藏最高数值位(1),尾数的实际值为,尾数的实际值为1.M; l阶码阶码E:8 8 位,采用有偏移值的移码表示;位,采用有偏移值的移码表示;

30、移移127码,即码,即E=e+127,E的的8位二进制数即为移位二进制数即为移127码的编码;码的编码; l浮点数的真值:浮点数的真值:N=(-1)S(1.M)2E-127 数符数符S阶码阶码E尾数尾数M 2021年6月22日星期二40 IEEE754 标准格式标准格式 (64位格式)位格式) 其真值表示为:其真值表示为: x=(1)S(1.M)2E 1023 e E1023 2021年6月22日星期二41 IEEE754 标准的数据表示标准的数据表示 lIEEE754 标准中的阶码标准中的阶码E 正零、负零正零、负零 uE与与M均为零,正负之分由数据符号确定;均为零,正负之分由数据符号确定;

31、 正无穷、负无穷正无穷、负无穷 uE为全为全1,M为全零,正负之分由数据符号确定;为全零,正负之分由数据符号确定; 阶码阶码E的其余值(的其余值(0000 00011111 1110)为规格化数据;)为规格化数据; u真正的指数真正的指数e的范围为的范围为-126+127 E=0000 0000,M=0000 0000 E=1111 1111,M=0000 0000 0000 0000 1111 1111 2021年6月22日星期二42 IEEE754 标准对特殊数据的表示标准对特殊数据的表示 符号位符号位S阶码阶码E尾数尾数M数值数值N 0/10=00 0/100(-1)S(0.M)2-12

32、6 0/112540(-1)S(1.M)2E-127 0/12550NaN(非数值)(非数值) 0/1255=0(-1)S(无穷大无穷大) 2021年6月22日星期二43 课本课本P18 例例1 l例例1 若浮点数的若浮点数的754标准存储格式为标准存储格式为(41360000)16,求其浮,求其浮 点数的十进制数值。点数的十进制数值。 l解:解: (41360000)16 = 0100 0001 0011 0110 0000 0000 0000 0000 指数指数e=E-127= 1000 0010 0111 1111=0000 0011=3 尾数尾数1.M=1.011 0110 0000

33、0000 0000 0000=1.011011 浮点数浮点数 N =(-1)S(1.M)2e = (-1)0(1. 011011)23 = (11.375)10 数符数符S阶码阶码E尾数尾数M 2021年6月22日星期二44 课本课本P18 例例2 l例例2 将将(20.59375)10转换成转换成754标准的标准的32位浮点数的二进制存位浮点数的二进制存 储格式。储格式。 l解:解: (20.59375)10(10100.10011)2 将尾数规范为将尾数规范为1.M的形式:的形式: 10100.100111.01001001124 e 4 可得:可得:M 010010011 S 0 E 4

34、1271311000 0011 故,故,32位浮点数的位浮点数的754标准格式为:标准格式为: 0100 0001 1010 0100 1100 0000 0000 0000(41A4C000)16 2021年6月22日星期二45 单精度浮点数与双精度浮点数单精度浮点数与双精度浮点数 l高级语言的高级语言的float、double使用的即是使用的即是IEEE754规定的格式。规定的格式。 lfloat :32位浮点值,也叫单精度浮点数(位浮点值,也叫单精度浮点数(4字节保存)字节保存) ldouble:64位浮点值,也叫双精度浮点数(位浮点值,也叫双精度浮点数(8字节保存)字节保存) l单精度

35、浮点数的例子:单精度浮点数的例子: 1位位 8位位 7位位 8位位 8位位 -1100 0.01 2021年6月22日星期二46 单精度浮点数与双精度浮点数单精度浮点数与双精度浮点数 l除除0之外,之外,IEEE754标准中单精度浮点数所能表示的绝对值最标准中单精度浮点数所能表示的绝对值最 小的规格化浮点数的格式为:小的规格化浮点数的格式为: S 0000 0001 00000000000000000000000 lV=(-1)S2-126(1.M)= (-1)S2-126(1+0.000) l除除之外,之外,IEEE754标准中单精度浮点数所能表示的绝对值标准中单精度浮点数所能表示的绝对值

36、最大的规格化浮点数的格式为:最大的规格化浮点数的格式为: S 1111 1110 11111111111111111111111 lV=(-1)S2+127(1.M)= (-1)S2-126(1+1.111) 2021年6月22日星期二47 求解技巧求解技巧 l例如:将下列十进制数表示成例如:将下列十进制数表示成IEEE754格式的格式的32位浮点数二进位浮点数二进 制存储形式。制存储形式。 27/32 11/512 l求解:求解: 27/32=27*(1/32) = (0001 1011)2*2-5 u尾数:尾数:1.1011 ;阶码:阶码:e=-5+4=-1 ,E=e+127=126 uI

37、EEE754数据:数据:0 0111 1110 1011 0000 0000 0000 0000 000 11/512= (0000 1011)2*2-9 u尾数:尾数:1.011;阶码:阶码:e=-9+3=-6 ,E=e+127=121 uIEEE754数据:数据:0 0111 1001 0110 0000 0000 0000 0000 00 2021年6月22日星期二48 例:将十进制数例:将十进制数-54表示成表示成二进制定点数二进制定点数(16位位)和和浮点数浮点数 (16位,其中数值部分位,其中数值部分10位,阶码部分位,阶码部分4位,阶符和数符各位,阶符和数符各 取取1位位),并写

38、出它在定点机和浮点机中的机器数形式。,并写出它在定点机和浮点机中的机器数形式。 l令令 x = -54,则,则x = -110110 l16位定点数真值表示:位定点数真值表示: x = -000 0000 0011 0110 定点机器数形式定点机器数形式 x原 原: : x补 补: : l浮点数规格化表示:浮点数规格化表示:x = -(0.1101100000)2110 浮点机器数形式浮点机器数形式 x原 原: : x补 补: : 非非IEEE754 标准标准 1 000 0000 0011 0110 1 111 1111 1100 1010 0 0110 ; 1 11 0110 0000 0

39、 0110 ; 1 00 1010 0000 2021年6月22日星期二49 最大正数:最大正数: x=1+(1-2-23) 2127 最小正数:最小正数: x=1.0 2-128 最小负数:最小负数: x=-1+(1-2-23) 2127 最大负数:最大负数: x=-1.0 2-128 课本课本P23例例9 假设一个假设一个32位非零规格化位非零规格化 浮点数浮点数,真值表示为:,真值表示为: 问:它所表示的问:它所表示的规格化的规格化的最大正数、最小正数、最大负数、最大正数、最小正数、最大负数、 最小负数是多少?(尾数用原码表示)最小负数是多少?(尾数用原码表示) 数符数符阶码阶码尾数尾数

40、01111 1111 1111 1111 1111 1111111 1111 数符数符阶码阶码尾数尾数00000 0000 0000 0000 0000 0000000 0000 数符数符阶码阶码尾数尾数11111 1111 1111 1111 1111 1111111 1111 数符数符阶码阶码尾数尾数10000 0000 0000 0000 0000 0000000 0000 2021年6月22日星期二50 浙江大学考研试题浙江大学考研试题 计算机储存程序的特点之一是把数据和指令都作为二进制信号计算机储存程序的特点之一是把数据和指令都作为二进制信号 看待。今有一计算机字长看待。今有一计算机

41、字长32bit,数符位是第,数符位是第31bit;单精度浮;单精度浮 点数格式如图所示。点数格式如图所示。 对于二进制数对于二进制数1000 1111 1110 1111 1100 0000 0000 0000 表示一个补码整数,其十进制值是多少?表示一个补码整数,其十进制值是多少? 表示一个无符号整数,其十进制值是多少?表示一个无符号整数,其十进制值是多少? 表示一个表示一个IEEE754标准的单精度浮点数,其值是多少?标准的单精度浮点数,其值是多少? 8位位23位位1 31 30 23 22 0 2021年6月22日星期二51 二进制数二进制数1000 1111 1110 1111 110

42、0 0000 0000 0000 表示一个补码整数,其十进制值是多少?表示一个补码整数,其十进制值是多少? n作为补码整数,其对应的原码是作为补码整数,其对应的原码是 1111 0000 0001 0000 0100 0000 0000 0000 n十进制值是十进制值是 -(230+ 229 +228 + 220 + 214 ) 表示一个无符号整数,其十进制值是多少?表示一个无符号整数,其十进制值是多少? n作为无符号整数,其十进制值是作为无符号整数,其十进制值是 231+ 227+ 226 +225 + 224 + 223+ 222 +221 + 219 +218 + 217 +216 +

43、215 +214 2021年6月22日星期二52 二进制数二进制数1000 1111 1110 1111 1100 0000 0000 0000 作为作为IEEE754标准的单精度浮点数标准的单精度浮点数 n阶码阶码E是是0001 1111 n指数指数e阶码阶码E1270001 11110111 1111 -1100000B-96D n尾数尾数M=110 1111 1100 0000 0000 0000 n则则1.M =1. 110 1111 1100 0000 0000 0000 =1.110 1111 11 单精度浮点数值为:单精度浮点数值为: X (-1)s1.M2e-(1.110 11

44、11 11)2-96 -(0.1110 1111 11)2-95 -(1416-11516-21216-3)2-95 -0.31152-95 2021年6月22日星期二53 2009考研真题考研真题 12.一个一个C语言程序在一台语言程序在一台32位机器上运行。程序中定义了三个位机器上运行。程序中定义了三个 变量变量x,y和和z,其中,其中x和和z是是int型,型,y为为short型。当型。当x=127, y=-9时,执行赋值语句时,执行赋值语句z=x+y后,后,x、y和和z的值分别是:的值分别是: A.x=0000007FH , y=FFF9H , z=00000076H B.x=00000

45、07FH , y=FFF9H , z=FFFF0076H C.x=0000007FH , y=FFF7H , z=FFFF0076H D.x=0000007FH , y=FFF7H , z=00000076H 2021年6月22日星期二54 2010考研真题考研真题 l14.假定变量假定变量i,f,d数据类型分别为数据类型分别为int, float, double(int用补用补 码表示,码表示,float和和double用用IEEE754单精度和双精度浮点数据格单精度和双精度浮点数据格 式表示式表示),已知,已知i=785,f=1.5678e3,d=1.5e100,若在,若在32位机位机 器

46、中执行下列关系表达式,则结果为真的是器中执行下列关系表达式,则结果为真的是() (I) i=(int)(float)i (II)f=(float)(int)f (III)f=(float)(double)f (IV)(d+f)-d=f l A. 仅仅I和和II B. 仅仅I和和III l C. 仅仅II和和III D. 仅仅III和和IV 关键是关键是“=” 两端的数据类两端的数据类 型是否一致!型是否一致! 2021年6月22日星期二55 2.1.1数据格式数据格式十进制数串的表示方法十进制数串的表示方法 l字符串形式字符串形式 每个十进制每个十进制数位数位占用一个字节;占用一个字节; 除保

47、存各数位,还需要指明该数存放的起始地址和总位数;除保存各数位,还需要指明该数存放的起始地址和总位数; 主要用于非数值计算的应用领域。主要用于非数值计算的应用领域。 l压缩的十进制数串形式压缩的十进制数串形式 采用采用BCD码表示,一个字节可存放两个十进制数位;码表示,一个字节可存放两个十进制数位; 节省存储空间,便于直接完成十进制数的算术运算;节省存储空间,便于直接完成十进制数的算术运算; 用特殊的二进制编码表示数据正负,如用特殊的二进制编码表示数据正负,如1100正、正、1101负负 2021年6月22日星期二56 2.1.3 字符与字符串的表示方法字符与字符串的表示方法 lASCII码码(

48、美国国家信息交换标准字符码美国国家信息交换标准字符码) 包括包括128个字符,共需个字符,共需7位编码;位编码; ASCII码规定:最高位为码规定:最高位为0,余下,余下7位作为位作为128个字符的编码。个字符的编码。 最高位的作用:奇偶校验;扩展编码。最高位的作用:奇偶校验;扩展编码。 l字符串字符串 指连续的一串字符,指连续的一串字符, 每个字节存一个字符。每个字节存一个字符。 当存储字长为当存储字长为2、或、或4个字节时,在同一个存储单元中个字节时,在同一个存储单元中; u可按从低位字节向高位字节的顺序存放字符串的内容可按从低位字节向高位字节的顺序存放字符串的内容; u或按从高位字节向低

49、位字节的次序顺序存放字符串的内容。或按从高位字节向低位字节的次序顺序存放字符串的内容。 2021年6月22日星期二57 2.1.4 汉字的表示方法汉字的表示方法 l汉字的输入编码汉字的输入编码 目的:直接使用西文标准键盘把汉字输入到计算机目的:直接使用西文标准键盘把汉字输入到计算机 。 分类:主要有数字编码、拼音码分类:主要有数字编码、拼音码 、字形编码三类。、字形编码三类。 l汉字内码汉字内码 用于汉字信息的存储、交换、检索等操作的机内代码用于汉字信息的存储、交换、检索等操作的机内代码 l汉字字模码汉字字模码 用点阵表示的汉字字形代码,用于汉字的输出。用点阵表示的汉字字形代码,用于汉字的输出

50、。 2021年6月22日星期二58 显示输出显示输出打印输出打印输出 机内码向字形码转换机内码向字形码转换 机内码机内码 输入码向机内码转换输入码向机内码转换 中文编码中文编码 字符代码化(输入)字符代码化(输入) 数字码数字码 拼音码拼音码 字形码字形码 2021年6月22日星期二59 汉字字模码汉字字模码 精密型精密型4848 4848288288 提高型提高型3232 3232 128128 普及型普及型2424 2424 7272 简易型简易型1616 16163232 汉字点阵类型汉字点阵类型点阵点阵占用字节数占用字节数 2021年6月22日星期二60 2.1.5 校验码(数据校验)

51、校验码(数据校验) l数据校验原因数据校验原因 为减少和避免数据在计算机系统运行或传送过程中发生错为减少和避免数据在计算机系统运行或传送过程中发生错 误,在数据的编码上提供了检错和纠错的支持。误,在数据的编码上提供了检错和纠错的支持。 l数据校验码的定义数据校验码的定义 能够发现某些错误或具有自动纠错能力的数据编码;能够发现某些错误或具有自动纠错能力的数据编码; 也称检错码;也称检错码; l数据校验的基本原理是数据校验的基本原理是扩大码距扩大码距; 码距码距:任意任意两个合法码之间不同的二进制位的两个合法码之间不同的二进制位的最少位数最少位数; 仅有一位不同时,称其码距为仅有一位不同时,称其码

52、距为1。 2021年6月22日星期二61 码距及作用码距及作用 l设用四位二进制表示设用四位二进制表示16种状态种状态 16种编码都用到了,此时码距为种编码都用到了,此时码距为1; 任何一种状态的四位码中的一位或几位出错,就变成另一任何一种状态的四位码中的一位或几位出错,就变成另一 个合法码;个合法码; 无查错能力。无查错能力。 l若用四位二进制表示若用四位二进制表示8个状态个状态 只用其中的只用其中的8种编码,而把另种编码,而把另8种编码作为非法编码;种编码作为非法编码; 可使码距扩大为可使码距扩大为2; u注意:并不是任选注意:并不是任选8种编码都可扩大码距;种编码都可扩大码距; 2021

53、年6月22日星期二62 校验码的类型校验码的类型 l奇偶校验码奇偶校验码 判断数据中判断数据中1的个数设置的个数设置1位校验位;位校验位; 分奇校验和偶校验两种,只能检错,无纠错能力;分奇校验和偶校验两种,只能检错,无纠错能力; l海明校验码海明校验码 在奇偶校验的基础上增加校验位而得;在奇偶校验的基础上增加校验位而得; 具有检错和纠错的能力;具有检错和纠错的能力; l循环冗余校验码(循环冗余校验码(CRC) 通过模通过模2的除法运算建立数据信息和校验位之间的约定关系;的除法运算建立数据信息和校验位之间的约定关系; 具有很强的检错纠错能力。具有很强的检错纠错能力。 2021年6月22日星期二6

54、3 奇偶校验码奇偶校验码概念概念 l奇偶校验原理奇偶校验原理 在数据中增加在数据中增加1个冗余位,使码距由个冗余位,使码距由1增加到增加到2; 如果合法编码中有奇数个位发生了错误,就将成为非法代码。如果合法编码中有奇数个位发生了错误,就将成为非法代码。 增加的冗余位称为奇偶校验位。增加的冗余位称为奇偶校验位。 l校验的类型校验的类型 偶校验:每个码字偶校验:每个码字(包括校验位包括校验位)中中1的数目为偶数。的数目为偶数。 奇校验:每个码字奇校验:每个码字(包括校验位包括校验位)中中1的数目为奇数。的数目为奇数。 l校验过程校验过程 发送端:按照校验类型,在发送数据后添加校验位发送端:按照校验

55、类型,在发送数据后添加校验位P; 接收端:对接收到的数据(包括校验位)进行接收端:对接收到的数据(包括校验位)进行同样类型的校同样类型的校 验验,决定数据传输中是否存在错误;,决定数据传输中是否存在错误; 2021年6月22日星期二64 奇偶校验码奇偶校验码校验原理校验原理 l偶校验:在接收端求校验位偶校验:在接收端求校验位 P=D7 D6 D5 D4 D3 D2 D1 D0 P 若若P0,则无错;若,则无错;若P1,则有错。,则有错。 l奇校验:在接收端求校验位奇校验:在接收端求校验位 P=D7 D6 D5 D4 D3 D2 D1 D0 P 若若P1,则无错;若,则无错;若P0,则有错。,则

56、有错。 l电路实现:电路实现: 一般采用异或电路得到校验位。一般采用异或电路得到校验位。 1010 1011 求校验码求校验码 偶校验码偶校验码 1010 1011 1 奇校验码奇校验码 1010 1011 0 2021年6月22日星期二65 接收端接收端 字字校验位校验位 校验码校验码 例例1: 数据数据 0010 0001 奇校验码奇校验码 0010 0001 1 偶校验码偶校验码 0010 0001 0 例例2:数据:数据 : 0111 0101 偶校验码偶校验码 0111 0101 1 发送端发送端(门电路)(门电路) 0110 0101 1 出错!出错! 奇偶校验码奇偶校验码 例题(

57、例题(1/2) 2021年6月22日星期二66 例例3:数据:数据 : 0111 0101 奇校验码奇校验码 0111 0101 0 发送端发送端 (门电路)(门电路) 0110 0111 0 接收端接收端 正确正确 奇偶校验只能发现奇偶校验只能发现 奇数个错误,且不能奇数个错误,且不能 纠正错误!纠正错误! 奇偶校验码奇偶校验码例题(例题(1/2) 2021年6月22日星期二67 海明码海明码 l海明码是海明码是1950年提出的;年提出的; 只要增加少数的几位校验码,即可检测出多位出错,并能自只要增加少数的几位校验码,即可检测出多位出错,并能自 动恢复一或几位出错信息;动恢复一或几位出错信息

58、; l实现原理:实现原理: 在一个数据中加入几个校验位,在一个数据中加入几个校验位,每个校验位和某几个特定的每个校验位和某几个特定的 信息位信息位构成偶校验的关系;构成偶校验的关系; 接收端对每个偶关系进行校验,产生校验因子;接收端对每个偶关系进行校验,产生校验因子; 通过通过校正因子校正因子区分区分无错无错和码字中的和码字中的n个不同位置的错误个不同位置的错误; u不同代码位上的错误会得出不同的校验结果;不同代码位上的错误会得出不同的校验结果; 2021年6月22日星期二68 海明码海明码确定校验位的位数确定校验位的位数 l设设K为有效信息的位数,为有效信息的位数,r为校验位的位数,则整个码

59、字的位数为校验位的位数,则整个码字的位数 N应满足不等式:应满足不等式: NKr2r1 通常称为(通常称为(N,K)海明码)海明码 l设某设某(7,4)海明码表示的码字长度为海明码表示的码字长度为 位,校验位数为位,校验位数为 位。位。 l例如:数据例如:数据D3D2D1D0 =1001 K=4,r+5 2r ; 可知,需要校验位可知,需要校验位3位位P3P2P1 ; 73 2021年6月22日星期二69 海明码海明码确定校验位的位置确定校验位的位置 l数据表示数据表示 数据位数据位D(DiDi-1D1D0) 、校验位、校验位P(PjPj-1P2P1) 海明码海明码H (包括数据位和校验位):

60、(包括数据位和校验位):HmHm-1H2H1; l分组原则分组原则 每个校验位每个校验位Pi从低到高被分在海明码中位号从低到高被分在海明码中位号2i-1的位置;的位置; l例如:数据例如:数据D3D2D1D0 =1001,校验位,校验位P3P2P1 海明码共海明码共7位位H7H6H2H1 ,各位分配如下:,各位分配如下: H7H6H5H4H3H2H1 P1 P2 P3 D0 D1 D2 D3 2021年6月22日星期二70 海明码海明码校验分组校验分组 l校验原则校验原则 海明码的每一位海明码的每一位Hi有多个校验位校验,其关系是有多个校验位校验,其关系是被校验的每被校验的每 一位位号一位位号

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论