计算机组织与结构第2章数据的机器级表示和运算.ppt
《计算机组织与结构第2章数据的机器级表示和运算.ppt》由会员分享,可在线阅读,更多相关《计算机组织与结构第2章数据的机器级表示和运算.ppt(126页珍藏版)》请在三一办公上搜索。
1、1,第2章 数据的机器级表示和运算,2,本章结构,3,2.1 数制及转换,1、进位计数制*进位计数制:又称进制或数制,是用一组固定的符号和统一的规则来表示数值的方法。有数码、基数和位权3个基本参数,*常用的4种进制:,*R进制数表示:(N)R=(kn-1k1k0.k-1k-2k-m)R=其中,ki0,1,(R-1),4,2、R进制数转换成十进制数,例1(101.01)2=(122+120+12-2)10=(5.25)10(3A.C)16=(3161+10160+1216-1)10=(58.75)10,3、十进制数转换成R进制数(1)十进制数整数转换成R进制数整数,例2,*转换规则:按位权展开,
2、*整数转换规则:除基取余、上右下左,5,(2)十进制数小数转换成R进制数小数,整数部分0.68758=5.5 5(最高位)0.5 8=4.0 4(最低位)(0.6875)10=(0.54)8,例3将(0.6875)10分别转换成二、八进制数,(3)十进制数转换成R进制数*转换规则:整数部分、小数部分分别转换后再合并,练习1(19.6875)10=(X)2=(Y)8,X=?Y=?,*小数转换规则:乘基取整、上左下右,6,4、二、八、十六进制数相互转换*隐含规律:2=21,8=23,16=24,(1)二进制、八进制数相互转换*转换规则:从小数点向两边分别转换;3个二进制数位(不够时补零)等价于1个
3、八进制数位,例4(13.724)8=(001 011.111 010 100)2=(1011.1110101)2(10011.01)2=(010 011.010)2=(23.2)8,(2)二进制、十六进制数相互转换*转换规则:从小数点向两边分别转换;4个二进制数位(不够时补零)等价于1个十六进制数位,例5(2B.E)16=(0010 1011.1110)2=(101011.111)2(11001.11)2=(0001 1001.1100)2=(19.C)16,7,2.2 数值数据的机器表示,计算机用编码(数据)表示信息:,计算机只支持最常用(最基本)的数据类型:,数据表示计算机硬件能够直接识别
4、和引用的数据类型,应用数据数据表示的转换:程序员或编译程序完成,8,一、机器数及其编码,*数值数据:组成由符号、小数点及数值构成,可缺省符号及小数点 运算符号与数值分开运算;加减法需先比较大小,*机器数:符号数字化的数,通常0/1表示+/-;如(+101)2(0101)2、(-0.101)2(-.101)2(1.101)2 真值带“+”或“-”符号的数,*机器数的运算方法:采用手工运算方法,硬件实现很不方便;如(+x)+(-y)时,先求x-y、再求结果符号、最后求x-y或y-x 采用新运算方法,便于硬件实现(如符号与数值一起运算)必须使用新的编码方法!,*机器数的编码方法:原码、补码、反码、移
5、码等,9,1、原码表示法(原码编码方法)*基本思想:用0/1表示符号+/-,数值位为真值的绝对值,*纯整数原码定义:设X=xn-2x0,xi=0或1,则X原=xn-1xn-2x0,,例1+1101原=01101;-1101原=11101,例2设X原=1101,则X=-101,例3设+X原=0110,则-X原=1110;+X原=0000,则-X原=1000,即+0原-0原,练习1若X=-01000,X原=?若X原=101010,X=?,10,*纯小数原码定义:设X=0.x-1x-(n-1),则X原=x0.x-1x-(n-1),例4+0.1001原=0.1001;-0.1001原=1.1001,例
6、5X原=1.01,则X=-0.01,*原码的特性:,X与X原关系 X原与X表示值的范围相同,+0原-0原;,运算方法符号与数值分开运算(与手工运算一致)适合于乘除法,加减法较复杂,11,2、补码表示法*目标:实现符号与数值一起运算,*有模运算:运算时只计量小于“模”的部分,多余部分被丢弃 模计量系统的计数范围;,(1)有模运算与补数 示例将时针从10点拨向7点,有两种拨法:倒拨10-3=7;顺拨10+9=7+12=7,*补数:若a、b、M满足a+b=M,称a、b互为模M的补数,同余若A、B、M满足A=B+kM(k为有符号整数),则记 AB(mod M),称B和A为模M的同余,运算特征c-a=c
7、-(M-b)=c+b(mod M),即减去一个数等价于加上这个数的补数 可将减法运算转化为加法运算,12,*数据编码思路:使数值部分无减法运算 负数用其正补数表示,正补数可用模加负数求得;例-48(mod 12),即8=12+(-4)正数用其本身表示,即正数的同余数 例 88(mod 12),即8=8+12(mod 12),(2)补码定义*基本思想:设模为M,真值X的X补=M+X(mod M),*纯整数补码定义:设X=xn-2x0,xi=0或1,则X补=xn-1xn-2x0,即,说明因X连同符号位共n位,故模为2n,13,例6+0001补=00001,-0001补=10 0000-0001=1
8、1111+1111补=01111,-1111补=10 0000-1111=10001,练习2若X=-01000、Y=+01000,X补=?Y补=?,例7n=5、X0时,最大X补=01111,Xmax=24-1=+15 X0时,最小X补=10000,Xmin=-24=-16,+0000补=-0000补=00000 数0的补码惟一,正数补码最高位(符号位)为0,负数最高位为1,补码表示数的个数比原码多1个,14,*定点纯小数补码定义:设X=0.x-1x-(n-1),则X补=x0.x-1x-(n-1),例8+0.1011补=0.1011-0.1011补=2-0.1011=10.0000-0.1011
9、=1.0101,说明因X的计量范围为-1+2-(n-1)+1-2-(n-1),故模为2,15,(3)补码的特性*X与X补的关系:,设纯整数X=+xn-2x0,Y补=0yn-2y0,xi和yi=0或1 则X补=X=0 xn-2x0 Y=Y补=+yn-2y0,纯小数真值与补码的关系上述方法同样适用,自行推导,16,XX补 若X为正数,改符号位为0,其余各位不变;若X为负数,改符号位为1,其余各位取反、末位加1,例9X=+0101,X补=,X=-0101,X补=,0 0101;,1 1011,X补X 若X补最高位为0,改其为正号,其余各位不变;若X补最高位为1,改其为负号,其余各位取反、末位加1,例
10、10X补=0 0101,X=+0101;,X补=1 1011,X=,-0101,17,X原X补 若X原最高位为0,X补=X原;若X原最高位为1,X补=X原各数值位取反、末位加1,例11 X原=0 0101,X补=,0 0101;,X原=1 0101,X补=,1 1011,X补X原 若X补最高位为0,X原=X补;若X补最高位为1,X原=X补各数值位取反、末位加1,例12 X补=0 0101,X原=,0 0101;,X补=1 0101,X原=,1 1011,18,*X补与-X补的关系:,X补-X补X补的各位取反(含符号位)、末位加1-X补X补-X补的各位取反(含符号位)、末位加1,例13X补=1
11、0110,-X补=0 1001+1,=0 1010,练习3若X=-01001,-X补=?若X补=101010,-X补=?-X=?,19,0 01001,0 01001,1 01010,1 10110,+01010,0 01010,-01110,1 10010,+01110,1 10010,-10010,0 10010,0 10101,0 10101,1 10111,1 01001,20,3、反码表示法*目标:作为原码与补码相互转换时的一种过渡编码,*纯整数反码定义:设X=xn-2x0,xi=0或1,取模=2n-1,则,*纯小数反码定义:设X=0.x-1x-(n-1),xi=0或1,模=2-2-
12、(n-1),则,例14+1101反=01101,-1101反=10010,例15+0.1101反=0.1101,-0.1101反=1.0010,21,*反码与补码关系:若X为正数,X补=X反;若X为负数,X补=X反+1,原码、补码、反码比较:机器数的最高位均为符号位(0/1表示正/负);,+0补=-0补,补码比原码、反码多表示一个负数,若真值X为正数,X原=X补=X反;若真值X为负数,X补=X反+1,X反=X原各位求反(符号位除外);,22,4、移码表示法*目标:实现符号与数值一起编码,*纯整数移码定义:设X=xn-2x0,其中xi=0或1,取模=2n,则 X移=2n-1+X(mod 2n)=
13、2n-1+X-2n-1X2n-1,例16-111移=0001,-001移=0111,000移=1000,+001移=1001,+111移=1111,-1000移=0000,*移码的特性:数在数轴上为连续编码(无符号数),便于比较大小;X移=X补符号位取反、其余各位不变,23,二、数值数据的表示方法,24,3、数值数据的表示方法,*符号问题处理:有符号数用数字表示符号,无符号数符号位置为数值;,*进制问题处理:只支持二进制方式;,*小数点问题处理:点的表示用隐含方式表示;,位置表示约定不同数据类型的位置不同,25,*数码长度问题处理:不同数据类型数码长度固定;便于定长方式处理 同一数据类型可有几
14、种长度;可提高处理及存储效率,*运算问题处理:运算方法按数据表示的格式及编码进行相应运算;,数值数据的处理方法:包括数据的表示和数据的操作方法,数据类型区分由指令操作码区分;,溢出处理硬件检测并发出通知,由软件处理,26,三、数的定点表示,1、定点表示方法 指约定数据中隐含的小数点位置固定不变。,*定点数的表示范围:(设数码长度为n位),*定点表示形式:有约定在数值最低位之后和最高位之前两种,2、定点数的表示 采用定点表示格式的数称为定点数,通常有几种数码长度。,27,四、数的浮点表示,概念:尾数-M,阶E,尾数的基RM,阶的基RE,1、浮点表示方法 指约定数据中隐含的小数点位置是可变的。,表
15、示尾数用定点纯小数表示,阶用定点整数表示,*浮点表示形式:由尾数和阶组成 格式,28,*浮点数的表示范围与精度:假设尾数及阶的基均为2,数值长度分别为m位及e位,2、浮点数的表示 采用浮点表示格式的数称为浮点数,通常有几种数码长度。,例1若浮点表示格式中m=10、e=4,尾数及阶均为补码编码方式,写出(-54)10的机器码。,解:(-54)10=(-110110)2=-0.110112+110,,浮点数机器码为 00110 10010100000,影响因素e决定了范围、m决定了精度,29,例2若浮点表示格式中尾数为8位(含1位符号位)、阶为5位(含1位符号位),写出下列实数的浮点数及机器码。,
16、例3浮点表示格式同例2,写出下列机器码的浮点数。,1 0010 1 1011100,0 1110 0 1011100,1 0101 1 0101001,-0.10110102-110,+0.101112-1011,-0.00110002+1101,30,3、浮点数的规格化*目的:在现有的浮点数表示格式中,使表示精度最大化。,例4若浮点表示格式中m=3、e=3、尾数和阶均为原码编码方式,不同表示方法的浮点数精度不同:+101.1=0.101123=0.0101124=0.00101125,*规格化数的要求:尾数真值的最高位为1,即|M|1,*规格化的操作:左规尾数左移一位,阶码减一;右规尾数右移
17、一位,阶码加一。应用非规格化数规格化数,可能需多次规格化操作,31,例5若浮点数尾数及阶的基均为2,回答下列问题:,*规格化数的表示范围及数码特征:,原码尾数最高数值位为1;,补码尾数最高数值位与符号相反 便于硬件实现,左规3次-0.100002-001,右规4次+0.101112+110,1111 0000,1111 110000,0111 111111,0000 1111,101111 100000,32,4、IEEE 754标准,*表示格式及数码长度:有单精度、双精度两种格式及长度,*编码方式:数制M和E均采用二进制方式(即RM=RE=2);,码制M为原码编码的定点纯小数(改进了定点位置
18、),E为移码编码的定点整数(改进了移码值),33,*阶的码制:采用的是余127码和余1023码 余X码偏移值为X的移码称为余X码,标准移码:真值=E-28-1=E-128,余127码:真值=E-(28-1-1)=E-127;,*尾数的码制:(以单精度格式为例)支持非规格化尾数和规格化尾数两种方式;,规 格 化尾数规格化的尾数真值=1.m-2m-24,机器码M=m-2m-24,尾数精度=24位,阶的范围1E254,而0和255另作他用,即-126阶的真值127,非规格化尾数尾数真值=0.m-1m-23,机器码M=m-1m-23,尾数精度=23位;,34,*IEEE 754标准浮点表示的特征:(以
19、单精度格式为例),35,例6求IEEE 754单精度码为(CC968000)16的浮点数的真值N,例5求(-11/128)10的IEEE 754单精度规格化数的机器码,解(-11/128)10=(-1011)22-7=(-0.1011)22-3=(-1.011)22-4=(-1.011)22123-127,解(CC968000)16=1 10011001 00101101000000000000000 N为负数,浮点数为规格化数(110011001254);,机器码为:,阶=(10011001)2(01111111)2=(00011010)2=(26)10 尾数=(1.00101101)2=(
20、1.17578125)10 N=(1)11.17578125226=-1.17578125226,数值数据的表示小结:表示格式有定点和浮点两种,编码方式可选择与运算器对应的机器数编码,数码长度总是固定的,36,2.3 非数值数据的数据表示,1.二进制编码的十进制数 2.字符及字符串编码 3.逻辑数据的表示,37,一、十进制数编码,*BCD码(Binary Coded Dicimal):又称二-十进制编码,是指用4位二进制编码表示1位十进制数位的编码方式。,*BCD码种类:分有权码和无权码两种,最常用的是8421码。,BCD码缺省指8421码(特殊声明除外)!,*十进制数的编码方法:对各数位按序
21、用BCD码编码,符号编码放在最后;用特定编码表示符号(如1100和1101表示正和负)。,例+427表示为0100 0010 0111 1100-123表示为0001 0010 0011 1101,38,二、字符及字符串编码,1、字符编码*字符编码:字符在字符集中惟一的数字化代码,表示字符在字符集中的序号或特征号,*字符编码的类型:有输入码、内码、交换码、字模码4种,与输入法、字符集大小有关,与字体、字号大小有关,字符交换时的编码(序号),仅与字符集大小有关,字符存储时的编码(数据表示),与字符集大小、存储字长有关,39,*有关字符编码的约定:字符编码均指交换码的编码!字符数据均指内码的编码!
22、,*常见字符编码(交换码)种类:,40,2、字符串编码*字符串特性:由多个字符构成;所含字符数不固定。,*字符串编码方法:由各个字符编码组成;通过特定编码标志字符串的结束,结束编码放在最后 字符集必须包含该字符(如ASCII码中编码为0的字符),例C语言中字符串“am”可编码为1100001 1101101 000000,41,三、逻辑数据的表示*数学特征:值域真、假;运算与(AND)、或(OR)、非(NOT)等,*运算处理方法:可采用所有位同时按位进行与/或/非运算 可获得最大性能一位操作时,软件负责准备数据,*数据的表示方法:数码长度1位n位(n为MEM字长倍数);以提高存储效率,表示格式
23、n个逻辑数据捆绑表示,每个逻辑数据占1位;,例28位逻辑数A和B如何实现第0位的OR操作(结果在A中)?,编码方式各位独立编码,1/0可表示真/假,解:步骤为 C=B AND 01H;A=A OR C,42,附:数据的表示小结,数据的表示方法:有表示格式、编码方式、数码长度3个方面,而数码长度只与数据的实例有关、与数据的类型无关,数据的表示方法实例:,43,MEM字长的确定思路:(系统结构研究的内容)MEM字长=min使用频率很高的各种数据的数码长度 通常,MEM字长=字节(1B=8bit,ASCII码字符的使用频率很高),机器字长的确定思路:(系统结构研究的内容)机器字长=max使用频率很高
24、的各种定点数的数码长度,数据的表示实现:编译程序将语言数据类型转换成机器数据的表示形式;指令操作码 指明机器数据的表示类型;运算器必须具有相应功能处理不同类型的机器数据!,44,2.4 定点数的运算及实现,一、移位运算,1、移位及移位运算*移位:数值相对于某个位置的移动 例20.0m=2000.0cm,称20相对于小数点左移了2位,*移位操作:有左移、右移2种类型;二进制数左移或右移n位相当于乘以或除以2n,*移位运算:对计算机中机器数的移位操作 运算种类对有符号数,有算术左移、算术右移;对无符号数,有逻辑左移、逻辑右移,数据定长表示符号数字化,运算参数操作数、移动位数,45,2、逻辑移位运算
25、*操作数类型:无符号机器数,例1某REG内容为00111001,逻辑移位运算结果如下:,*运算规则:机器数整体移位,移出的数丢弃,出现的空位补0,丢弃部分,丢弃部分,0 0 1 1 1 0 0 1,0 0 1 1 1 0 0 1,*运算实现方法:通常用移位寄存器实现,练习若(REG)=11001001,逻辑左移1位再右移1位的结果?,*溢出判断方法:左移、移丢数码为1时运算溢出,46,3、算术移位运算*操作数类型:有符号机器数(原码、补码、反码等),*运算规则:符号位不变,数值部分整体移位,空位添补规则如下表(根据编码方式的数学特征添补),补码特性2X补=2X补及 X补=XS*2n-1+X补,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 组织 结构 数据 机器 表示 运算

链接地址:https://www.31ppt.com/p-6606717.html