第三章运算方法和运算部件_第1页
第三章运算方法和运算部件_第2页
第三章运算方法和运算部件_第3页
第三章运算方法和运算部件_第4页
第三章运算方法和运算部件_第5页
已阅读5页,还剩70页未读 继续免费阅读

下载本文档

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

文档简介

1、第三章 运算方法和运算部件3.1 数据的表示和转换1、进位计数制n进位计数制: 用少量的数字符号(也称数码),按先后次序把它们排成数位,由低到高进行计数,计满进位,这样的方法称为进位计数制n基数: 进位制的基本特征数,即所用到的数字符号个数。w例如10进制 :09 十个数码表示,基数为10n权: 进位制中各位“1”所表示的值为该位的权n常见的进位制: 2,8,10,16进制3.1.1 数值型数据的表示和转换二进制(Binary) 基数:2 符号:0,1 计算规律:逢二进一或借一当二 二进制的多项式表示: N2=dn-1 2n-1 + dn-2 2n-2 + d1 21 + d0 20 + d-

2、1 2-1 + d-2 2-2 + d-m 2-m 其中n为整数位数;m为小数位数。Di表示第i位的系数,2i称为该位的权. 十六进制(Hexadecimal)基数:16符号:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F计算规律:逢十六进一或借一当十六二进制的多项式表示:N16=dn-1 16n-1 + dn-2 16n-2 + d1 161 + d0 160 + d-1 16-1 + d-2 16-2 + d-m 16-m 其中n为整数位数;m为小数位数。Di表示第i位的系数,16i称为该位的权. 2 、不同数制之间的数据转换从小数点向左右从小数点向左右三三位一分组位一分组

3、从小数点向左右从小数点向左右四四位一分组位一分组二进制转换成八进制例:(10110111 .01101) 2(10110111.01101) 2 2 =(267.32)8 8八进制: 2 6 7 . 3 2二进制: 010 ,110 , 111 . 011 , 010二进制: 10 ,110 , 111 . 011 , 01八进制转换二进制例如: (123.46 ) 8=(001,010,011 .100,110 ) 2 =(1010011.10011)2二进制转换成十六进制例:(110110111 .01101) 2(10110111.01101) 2 2 =(1B7.68)1616十六进制

4、: 1 B 7 . 6 8二进制: 0001 ,1011 , 0111 . 0110 ,1000二进制: 1 ,1011 , 0111 . 0110 ,1十六进制转换成二进制例如: (7AC.DE ) 16=(0111,1010,1100.1101,1110 ) 2 =(11110101100 .1101111 )2 按权展开法:先写成多项式,然后计算十进制结果. N = dn-1dn-2 d1d0d-1d-2 d-m=dn-1 Rn-1 + dn-2 Rn-2 + d1 R1 + d0 R0 + d-1 R-1 + d-2 R-2 + d-m R-m.R进制转换成十进制的方法例如:写出(11

5、01.01)2,(237)8,(10D)16的十进制数 (1101.01)2=123+122+021+120+ 02-1+12-2 =8+4+1+0.25=13.25 (237)8=282+381+780 =128+24+7=159 (10D)16=1162+13160=256+13=269一般分为两个步骤:整数部分的转换 除2取余法(基数除法) 减权定位法小数部分的转换 乘2取整法(基数乘法)除基取余法:把给定的除以基数,取余数作为最低位的系数,然后继续将商部分除以 基数,余数作为次低位系数,重复操作直至商为 0例如:用基数除法将(327)10转换成二进制数2 327 余数2 163 1 2

6、 81 1 2 40 1 2 20 0 2 10 0 2 5 0 2 2 1 2 1 0 2 0 1 (327)(327)10 10 =(101000111) =(101000111) 2 2整数部分的转换减权定位法将十进制数依次从二进制的最高位权值进行比较,若够减则对应位置1,减去该权值后再往下比较,若不够减则对应位为0,重复操作直至差数为0。例如:将 (327)10 转换成二进制数256327512327-256=71 171128 071-64 =7 1732 0716 079 (1001)2 , 加6 (0110)2修正例: 5+3=8 7+8=15 8+9=17 0 1 0 1 0

7、1 1 1 1 0 0 0+0 0 1 1 +1 0 0 0 + 1 0 0 1 1 0 0 0 1 1 1 1 1 0 0 0 1 + 0 1 1 0 + 0 1 1 0 1 0 1 0 1 1 0 1 1 1 向高位进位2.数字串在机内的表示与存储主要有两种形式;(l)字符形式即一个字节存放一个十进制数位或符号位,存放的是09十个数字和正负号的ASCll编码值。 例如,123的编码为2B 31 32 33 ,占用 4个连续的字节,这里的2B,31,32和 33是用十六进制形式给出的编码,2B表示正号,31,32和33分别表示数字1,2和3。一123在主存中为 2D 31 32 33,其中

8、2D为负号。 这种表示方式运算起来很不方便,因为它的高4位不具有数值的意义,它主要用在非数值计算的应用领域。 (2)压缩的十进制数形式。用一个字节存放两个十进制数位,既节省了存储空间,又便于完成十进制数的算术运算、其值用BCD码或ASCll码的低4位表示。符号位也占半个字节并放在最低数字位之后,其值可从4位二进制码中的6种冗余状态中选用。例如,用C(l2)表示正号;D(13)表示负号。并规定数字和符号位个数之和必须为偶数,否则在最高数字之前补一个0。例如,123被表示成12 3C(2个字节),一12被表示成01 2D(2个字节)。数据编码的种类1.数值数据的编码定点数的编码浮点数的编码2.非数

9、值数据的编码(补充,了解)字符数据的编码(西文字符和汉字)多媒体数据的编码(图形图像和语音信号)字符型字符型数据的表示数据的表示 字符作为人字符作为人机联系的媒介,是最重要的数机联系的媒介,是最重要的数据类型之一,当前的西文字符集由据类型之一,当前的西文字符集由 128 个符号组个符号组成,通常用成,通常用 8 位二进制编码,即位二进制编码,即用一个字节来表用一个字节来表示每一个符号示每一个符号。通用的两个字符集:。通用的两个字符集:ASCII 码码: 即即 American Standard Code for Information InterchangeEBCDIC码码:即:即 Exten

10、ded Binary Coded Decimal Interchage Code ASCII码字符集具体编码如下表所示:码字符集具体编码如下表所示: b6 b5 b4 000 001 010 011 100 101 110 111 b3 b2 b1 b0 0000 NUL DLE SP 0 P , p 0001 SOH DC1 ! 1 A Q a q 0010 STX DC2 “ 2 B R b r 0011 ETX DC3 # 3 C S c s 0100 EOT DC4 $ 4 D T d t 0101 ENQ NAK % 5 E U e u 0110 ACK SYN & 6 F

11、V f v 0111 BEL ETB 7 G W g w 1000 BS CAN ( 8 H X h x 1001 HT EM ) 9 I Y i y 1010 LF SUB * : J Z j z 1011 VT ESC + ; K k 1100 FF FS , N n 1111 SI US / ? O _ o ASCII字符编码集字符编码集字符串的表示与存储字符串的表示与存储 字符串是指连续的一串字符,它们占据主存中连续字符串是指连续的一串字符,它们占据主存中连续的多个字节,每个字节存放一个字符。表示字符串数据的多个字节,每个字节存放一个字符。表示字符串数据要给出串存放的主存起始地址和串的

12、长度。要给出串存放的主存起始地址和串的长度。 对一个主存字的多个字节,有按从低位到高位字节对一个主存字的多个字节,有按从低位到高位字节次序存放的,也有按从高位到低位字节次序存放的。例次序存放的,也有按从高位到低位字节次序存放的。例如:如:IF AB THEN READ(C)就可以有如下不同的存放就可以有如下不同的存放方式:方式: I F A A F I B T T B 假定每个字假定每个字 H E N N E H 由由 4 个字节个字节 R E A D D A E R 组成组成 ( C ) ) C (汉字的表示汉字的表示汉字在计算机中的编码可分为输入码和机内码。 输入码:汉字与键盘按键的对应规

13、则,将每个汉字用一组键盘按键表示。常用的有:数字码、拼音码和字形码。机内码:在计算机内部进行存储、处理时的表示形式,是一种二进制代码。通常用两个字节表示一个汉字,为了与西文字符编码相区别(西文的ASCII码的最高一位编码值为0),表示一个汉字时,把两个字节的最高一位的编码值设定为1,则该编码集的最多编码数量为128*128。数值数据在计算机内的格式在计算机中表示的二进制数据,称为机器数。它是一个位数有限的二进制代码,约定了数据的格式,且包含了符号信息。真值:机器数所代表的实际数值。机器数分带符号数和无符号数两种。机器数的编码可分为定点数和浮点数两种。而定点数又有定点整数和定点小数之分。数值数据

14、在计算机内的格式数值数据在计算机内的格式定点小数定点小数: N = N N N .Ns-1-n-2整整 数数 : N = N N N . N N01snn-1浮点数浮点数: N = M E E .E E M M .M ssm-110-1-2-n符号位符号位 阶码位阶码位 尾数数码位尾数数码位 总位数总位数 短浮点数短浮点数: 1 8 23 32长浮点数长浮点数: 1 11 52 64 临时浮点数临时浮点数: 1 15 64 80IEEE 标准:标准: 阶码用移码,阶码用移码,尾数用原码尾数用原码 基为基为 2定点数的编码及运算为了表示负数,将最高位作为符号位(最左边),数的真值用X表示。表示带

15、符号数的方法:原码表示法反码表示法补码表示法移码表示法1. 原码表示法 符号位用“0”表示正号,用“1”表示负号,有效值部分用二进制的绝对值表示。(1)整数的原码表示对给定的n+1位二进制整数x=x0 x1xn, X 2n-1X0 X原 = 2n-X=2n+|X| 0X-(2n-1)当x=0时,x原=0 x1xn当xX- 2n完成下列数的真值到补码的转换X1 = + 0 1011011 X2 = - 0 1011011 对于给定的X补,其数值为: X = -X02n +X12n-1 +Xn-12+Xn小数: X 1- 2-n X0 x补= 2+X=2-|X| 0X-1 完成下列数的真值到补码的

16、转换X1 = + 0.1011011 X2 = - 0.1011011 对于给定的X补,其数值为: X = -X020 +X12-1 +Xn-12-(n-1) +Xn 2-n补码的表示范围 N+1位纯整数: 2n -1 -2n N+1位纯小数: 1- 2-n - 1 均能表示 2n+1 个数补码的减法运算因为 X-Y补=X+(-Y)补=X补+-Y补 (MOD 2)所以,先求出-Y的补码,然后进行加法运算补码的加法运算 当结果不超出机器表示范围时,有以下结论:1.用补码表示的两个数相加,结果仍为补码2.X+Y补=X补+Y补 (MOD 2)3.符号位和数值位一样参与运算由X补求-X补(求机器负数)

17、运算过程:连同 符号一起将各位取反,末位再加1。设字长为8位例:X= +100 1001 X补 = 0100 1001 -X 补= 1011 0111补码的特点:加减法简单,运算方法对于正数和负数都一样。最大的优点就是将减法运算转换成加法运算。 X补-Y补= X补+-Y补例如 X=(11)10=(1011)2 Y=(5)10=(0101)2已知字长5位X补-Y补 =X补+-Y补=01011+11011=100110=00110=(6)10 注: 最高1位已经超过字长故应丢掉,因为补码运算是“mod 2”3. 反码表示法正数的表示与原、补码相同,负数的符号位为1,数值位是将原码的数值按位取反,就

18、得到该数的反码表示整数: 对给定的n+1位二进制整数x=x0 x1xn X 2n X 0 X反= (2n+1 -1)+X 0 X -2n X3=+1011011 , X3 反 =01011011 X4= -1011011 , X4 反 =10100100 1 1 1 1 1 1 1 1- 1 0 1 1 0 1 1 1 0 1 0 0 1 0 0 +0反=00000000 ; -0反 =11111111小数: 对给定的n+1位二进制小数x=x0 x1xn X 1 X 0X反= (2- 2-n )+X 0 X -(1-2-n)X1=+0.1011011 , X1 反 =0.1011011X2=

19、-0.1011011 , X2 反 =1.0100100 1. 1 1 1 1 1 1 1 - 0. 1 0 1 1 0 1 1 1. 0 1 0 0 1 0 0 反码的运算 以2-2-n为模,所以,当最高位有进位时,要丢掉进位,并在最低位+1原原 反反 补码表示小结补码表示小结正数的正数的 原码、反码、补码表示均相同,原码、反码、补码表示均相同,符号位为符号位为 0,数值位同数的真值。,数值位同数的真值。零的原码和反码均有零的原码和反码均有2个编码,补码只有一个个编码,补码只有一个负数的负数的 原码、反码、补码表示均不同,原码、反码、补码表示均不同, 符号位为符号位为 1,数值位:原码为数的

20、绝对值;,数值位:原码为数的绝对值; 反码为每一位均取反码;反码为每一位均取反码; 补码为反码再在最低位补码为反码再在最低位+1; 由由X补补求求-X补补:每一位取反后再在最低位:每一位取反后再在最低位+1;4 移码表示法X移= 2n + X 2n -1 X -2n X X1 1 = +101 0101= +101 0101 X X1 1 移移=1101 0101=1101 0101X X2 2 = - 101 0101= - 101 0101 X X2 2 移移=0010 1011=0010 1011对给定的n+1位二进制整数x=x0 x1xn X X1 1 补补=0101 0101=010

21、1 0101 X X2 2 补补=1010 1011=1010 1011 数值的运算 计算机中,常用补码进行加减运算 补码可将减法变加法进行运算 补码运算特点:符号位数值位一同运算 定点补码运算在加法运算时的基本规则: X补+Y补 = X+Y补(两个补码的和等于和的补码) 定点补码运算在减法运算时的基本规则: X-Y补=X补+-Y补加法运算逻辑图 例如:已知机器字长n=8,X=44,Y=53,求X+Y=? 解:X原=00101100,Y原=00110101X补=00101100,Y补=00110101 X补=0 0 1 0 1 1 0 0 + Y补= 0 0 1 1 0 1 0 1100001

22、10 X+Y= + 97例:已知机器字长n=8,X=44,Y=53,求X-Y=?解:X补=00101100,Y补=00110101, -Y补=11001011 X补 =0 0 1 0 1 1 0 0 + -Y补= 1 1 0 0 1 0 1 1 1 1 1 1 0 1 1 1 X-Y补=11110111,X-Y=-0001001=(-9) 例:已知机器字长n=8,X=-44, Y=-53,求X-Y=?解:X补=11010100,Y补=11001011, -Y补=00110101 X补 = 1 1 01 0 1 0 0 + -Y补= 0 0 1 1 0 1 0 1 10 0 0 0 1 0 0

23、1 超出8位(模值),舍弃X-Y补=00001001,X-Y=+0001001 =(+9)补码、反码和原码之间的相互转换仿照原码转换成补码、反码的规则,重复执行一次,即可还原成原码形式(1)反码转换成原码 符号位不变,正数的数值位不变,负数数值位取反(2)补码转换成原码 符号位不变,正数的数值位不变,负数数值位取反再加1补码的总结(1)真值 零 的表示唯一+0补 = - 0补 = 000(2)表示范围 ( n+1位) 定点小数 1-2-n x -1 定点整数 2n-1 x -2n(3)符号位与数值位一起参加运算(4)移位运算X 补= X0.X1. Xn(1/2)X 补= X0.X0X1. Xn

24、-12X 补= X1.X2. Xn0 条件: X0=X1 ( 0.0 xxxxxx或者1.1xxxxxx )例: 4位补码 8位补码 +1补=0001 +1补=0000 0001 - 1补=1111 - 1补=1111 1111(5)补码位数的扩展 :扩展的是符号位 溢出:运算结果超出机器数能表示的范围解:X补=01111000,Y补=00001010, X补= 0 1 1 1 1 0 0 0 + Y补= 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 0 X+Y补=10000010, X+Y的真值= -1111110=( -126)10 运算结果超出机器数值范围发生溢出错误。 (

25、8位计算机数值表达范围:(-128+127)例:已知机器字长n=8,X= 120, Y =10, 求X+Y=?溢出判断规则与判断方法 两个相同符号数相加,其运算结果符号与被加数相同,若相反则产生溢出; 两个相异符号数相减,其运算结果符号与被减数相同,否则产生溢出。 相同符号数相减,相异符号数相加不会产生溢出。 溢出判断方法:1.双符号法,2.进位判断法溢出判断,同一件事实,三种不同的叙述溢出判断,同一件事实,三种不同的叙述方式:方式:(1) 正正 + 正正 得得负负 或或 负负 + 负负 得得正正(2) 数字位有向符号位的进位,但符号位不产数字位有向符号位的进位,但符号位不产生向更高位的进位生

26、向更高位的进位 数字位无向符号位的进位,但符号位已产数字位无向符号位的进位,但符号位已产生向更高位的进位生向更高位的进位(3) 双符号位的值为双符号位的值为 01 或或 10对应于P78的三种情况 . 双符号位溢出判断法 fs1 fs2 (也被称为变形补码)双符号含义: 00表示运算结果为正数;01表示运算结果正向溢出;10表示运算结果负向溢出;11表示运算结果为负数。 亦即:OVR = fs1 fs2 = 1有溢出 OVR = fs1 fs2 = 0 无溢出 高符号位为运算结果的真正符号位。例:X=0.1001,Y=0.0101,求X+Y解: X补= 00.1 0 0 1 +Y补= 00.0

27、 1 0 1 X+Y补= 00.1 1 1 0两个符号位相同,运算结果无溢出X+Y=+0.1110例:X= - 0.1001,Y= - 0.0101, 求 X+Y=?解: X补= 11.0110+1 = 1 1. 0 1 1 1 + Y补= 11.1010+1 = 1 1. 1 0 1 1 X+Y补 = 1 1 1. 0 0 1 0 最高位1丢掉两个符号位相同,运算结果无溢出X+Y= - 0.1110 例:X= 0.1011,Y= 0.0111, 求 X+Y=?解: X补= 00. 1 0 1 1 + Y补= 00. 0 1 1 1 X+Y补= 01. 0 0 1 0两个符号位为01,运算结果

28、正向溢出例:X= - 0.1011,Y= 0.0111, 求 X-Y=?解: X补= 11.0100+1=11.0101 Y补=00.0111 -Y补=11.1001 X补 = 1 1. 0 1 0 1 + -Y补 = 1 1. 1 0 0 1 X+Y补 = 11 0. 1 1 1 0两个符号位10不同,运算结果负向溢出 . 进位溢出判断法 Cf C两单符号位的补码进行加减运算时,若最高数值位向符号位的进位值C与符号位产生的进位输出值Cf相同时则无溢出,否则溢出。例: X补= 1. 1 0 1 X补= 1. 1 1 0 + Y补= 1. 0 0 1 + Y补= 0. 1 0 0 X+Y补= 1

29、0. 1 1 0 X+Y补= 10.0 1 0 C=0, Cf =1,有溢出 C=1, Cf =1,无溢出 X+Y=+0.010浮点数浮点数: N = M E E .E E M M .M 符号位符号位 阶码位阶码位 尾数数码位尾数数码位 总位数总位数 短浮点数短浮点数: 1 8 23 32长浮点数长浮点数: 1 11 52 64 临时浮点数临时浮点数: 1 15 64 80IEEE 标准:标准: 阶码用移码,阶码用移码,尾数用原码尾数用原码 基为基为 2浮点数的表示ssm-110-1-2-n浮点数的浮点数的阶码阶码的位数决定数的表示范围,的位数决定数的表示范围, 尾数尾数的位数决定数的有效精度

30、。的位数决定数的有效精度。浮点数在计算机内的格式浮点数在计算机内的格式浮点数浮点数: X = M E E .E E M M .M ssm-110-1-2-nIEEE 标准:标准:尾数用原码尾数用原码X = MX * 2EX 浮点数是数学中实数的子集合,由一个纯小数乘上一个指浮点数是数学中实数的子集合,由一个纯小数乘上一个指数值来组成。在计算机内,其纯小数部分被称为浮点数的尾数,数值来组成。在计算机内,其纯小数部分被称为浮点数的尾数,对非对非 0 值的浮点数,要求尾数的绝对值值的浮点数,要求尾数的绝对值必须必须 = 1/2,称满足这,称满足这种表示要求的浮点数为种表示要求的浮点数为规格化表示规格

31、化表示; 把不满足这一表示要求的尾数,变成满足这一要求的尾数把不满足这一表示要求的尾数,变成满足这一要求的尾数的操作过程,叫作浮点数的的操作过程,叫作浮点数的规格化处理规格化处理,通过尾数移位和修改,通过尾数移位和修改阶码实现。阶码实现。浮点数在计算机内的格式浮点数在计算机内的格式浮点数浮点数: X = M E E .E E M M .M ssm-110-1-2-nIEEE 标准:标准:尾数用原码尾数用原码X = MX * 2EX 按国际电子电气工程师协会规定的标准,浮点数的尾数要按国际电子电气工程师协会规定的标准,浮点数的尾数要用原码表示,即符号位用原码表示,即符号位 Ms: 0 表示正,表

32、示正,1 表示负,且非表示负,且非 0 值尾数值尾数数值的最高位数值的最高位 M-1 必为必为 1, 才能满足浮点数规格化表示的要求;才能满足浮点数规格化表示的要求; 既然非既然非 0 值浮点数的尾数数值最高位必定为值浮点数的尾数数值最高位必定为 1,则在保存浮,则在保存浮点数到内存前,通过尾数左移点数到内存前,通过尾数左移, 强行把该位去掉强行把该位去掉, 用同样多的尾用同样多的尾数位就能多存一位二进制数,有利于提高数据表示精度,称这数位就能多存一位二进制数,有利于提高数据表示精度,称这种处理方案使用了种处理方案使用了隐藏位隐藏位技术。技术。 当然,在取回这样的浮点数到运算器执行运算时,必须

33、先当然,在取回这样的浮点数到运算器执行运算时,必须先恢复该隐藏位。恢复该隐藏位。浮点数格式:关于浮点数格式:关于移码移码的知识的知识 移码只执行二数的加减运算与增移码只执行二数的加减运算与增 1、 减减 1 操作。加减运算操作。加减运算时,符号位计算结果求反后时,符号位计算结果求反后, 才是加减运算的正确符号位的值。才是加减运算的正确符号位的值。注意注意:当用双符号位时,当用双符号位时,00代表负,代表负,01代表正,而不是代表正,而不是11代表正代表正 8 位的阶码能表示位的阶码能表示-128+127,当阶码为,当阶码为-128时,其补码时,其补码表示为表示为 00000000,该浮点数的绝对值,该浮点数的绝对值2-128,人们规定此浮点数人们规定此浮点数的值为零,若尾数不为的值为零,若尾数不为 0 就清其为就清其为 0,并特称此值为,并特称此值为机器零机器零。移码表示只用于表示整数,只用在浮点数的阶码部分。移码表示只用于表示整数,只用在浮点数的阶码部分。一位符号位和一位符

温馨提示

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

评论

0/150

提交评论