资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,2,运算方法与运算器,2,2014,年,10,月,计算机系统与网络维护,2 运算方法与运算器2计算机系统与网络维护,学习目标,能正确读出机器浮点数对应的真值,能计算出机器数表示的范围,知道字符(包括汉字)的机器表示,学习目标能正确读出机器浮点数对应的真值,学习内容,浮点数的表示,机器数表示的范围,计算机中数据的表示,参考资料,浮点数的二进制表示学习笔记,http:/ 0.575,X,10,-1,浮点数的二进制表示,M 2,E,M,:称为尾数,是一个,定点小数,E,:称为阶码,是一个,定点整数,(5.75),10,=(101.11),2,=0.10111x,2,11,M=(0.10111),2,E=(11),2,浮点数在机器内的表示,阶码,尾数,符号位,2.4 浮点数的表示十进制的科学记数法阶码尾数符号位,举例,(-1101.00101),2,在机内的浮点表示。,设机器字长为,16,位,尾数占,10,位,阶码占,6,位。,解:,(-1101.00101),2,=-0.1101001012,4,,即:,尾数为,-0.110100101,,阶码为,+4,,若都采用原码表示时,则有机内的表示形式:,0,00100,1,110100101,阶码,尾数,举例(-1101.00101)2在机内的浮点表示。00010,2.4.1,尾数规格化,所谓浮点数的规格化就是其尾数的第一位要为,1,,若不为,1,,就要用“左规”的方法使其为,1,。,左规就是尾数向左移动,(,同时调整阶码,),,直至尾数的第一位为,1,或阶码为全,0,或最小值。,如:,2,10,0.1101,就是规格化的浮点数;而,2,11,0.0110,是非规格化的浮点数。,例:把非规格化的浮点数,N,2,11,0.0110,规格化。,解:把浮点数,N,的尾数向左移一位,(,或尾数的小数点右移一位,),,变成,0.1100,,同时,阶码递减,1,,得到,N,2,10,0.1100,,就是规格化的浮点数。,2.4.1 尾数规格化所谓浮点数的规格化就是其尾数的第一位要,2.4.2,移码,在计算机中,尾数一般用补码表示,阶码一般用,移码,表示。,移码:又叫增码,是符号位取反的补码。,例如:(设,5,位),X=+1011 X,补,=,0,1011 X,移,=,1,1011X=-1011 X,补,=,1,0101 X,移,=,0,0101,也可以定义为:,X,移,=2,n-1,+X,n,为阶码的位数(含符号位),X=1011=(11),10,,,X,移,=2,4,+11=16+11=27=(11011),2,X=-1011=(-11),10,,,X,移,=2,4,-11=16-11=5=(00101),2,2.4.2 移码在计算机中,尾数一般用补码表示,阶码一般用移,例,例,1,,,32,位字长,其中:,1,个符号位,,8,位阶码(用移码表示),,23,位尾数。写出,(15.75),10,的机器表示。,解:,将,15.75,转换成二进制数:,1111.11,规格化:,1111.11,0.111111x2,4,计算移码:,4=(100),2,(10000100),2,结果:,0,10000100,11111100000000000000000,符号位,阶码,尾数,例例1,32位字长,其中:1个符号位,8位阶码(用移码表示),例,2,,,16,位字长,其中:,1,个符号位,,5,位阶码,(,用移码表示,),,,10,位尾数,(,用补码表示)。写出,(-15.75),10,的机器表示。,解:,将,-15.75,转换成二进制数:,-1111.11,规格化:,-1111.11,-0.111111x2,4,求尾数的补码:,-0.111111,0000,补,=0.0000010000,计算移码:,4=(100),2,(,1,0100),2,结果:,1,10100,0000010000,例2,16位字长,其中:1个符号位,5位阶码(用移码表示),例,3,,,16,位字长,其中:,1,个符号位,,5,位阶码,(,用移码表示,),,,10,位尾数,(,用原码表示)。写出,(0.075),10,的机器表示。,解:,求(,0.075,),10,的二进制数:,0.000100110011,规格化尾数:,0.1001100110 x2,-3,求移码:,-3=(-0011),2,(,0,1101),移,结果:,0,01101,1001100110,例3,16位字长,其中:1个符号位,5位阶码(用移码表示),例,4,,,16,位字长,其中:,1,个符号位,,5,位阶码,(,用移码表示,),,,10,位尾数,(,用原码表示)。请写出下列机器浮点数对应的真值,(,二进制数)。,(1)1,11001,1101000000(2)0 01001 1101000000,(1),解:,移码,1,1001,的真值是:,9,尾数:,-0.1101,真值:,-0.1101x2,9,=110100000,(2),解:,移码,0,1001,的真值是:,-7,尾数:,0.1101,真值:,0.1101x2,-7,=0.00000001101,例4,16位字长,其中:1个符号位,5位阶码(用移码表示),2.4.3 IEEE,浮点数表示规则,符号位,的位数,阶码,的位数,尾数,的位数,总长度,Float,(,单精度),1,8,23,32,Double,(,双精度),1,11,52,64,2.4.3 IEEE浮点数表示规则符号位阶码尾数总长度Flo,IEEE754的浮点数,例:,已知:整数,3490593(,16,进制表示为,0,x,354321,),。,求:其对应的浮点数,3490593.0,的二进制表示(,float,)。解法如下:,先求出整数,3490593,的二进制表示:,H:3 5 4 3 2 1,(十六进制表示),B:00,11,0101 0100 0011 0010 0001,(二进制表示),即:,(,1.101010100001100100001),2,2,21,可见,从左算起第一个,1,后有,21,位,我们将这,21,为作为浮点数的,尾数,,小数前的一位默认为,1,,不保存。这样的小数称为,规格化数,。浮点数的尾数表示为:,1 0101 0100 0011 0010 0001,00,(补上,2,位,共,23,位),阶码:指数的实际值加上某个固定的值(固定值为,2,e,-1,1,,,e,为阶码位数),所以阶码,=,2,e,-1,1,+21=,2,8,-1,1,+21=127+21=148=(10010100),2,机器数为:,0,10010100,1 0101 0100 0011 0010 0001 00,尾数的符号位,阶码,尾数,非标准移码,(用原码表示),IEEE754的浮点数例:已知:整数3490593(16进制,2.4.4,浮点数运算,5,个步骤:,1.,“,对阶,”,操作,2.,尾数的加,/,减运算,3.,规格化操作,4.,舍入,5.,检查阶码是否溢出,2.4.4 浮点数运算5个步骤:,2.5,机器数表示的范围,机器数的编码有:,原码、,补码,、反码、移码,浮点数,机器数值的范围取决于:,字长:二进制位数,如,8,、,16,、,32,、,64,符号位:有符号位、无符号位,编码方式,2.5 机器数表示的范围机器数的编码有:,2.5,机器数表示的范围,补码、,8,位字长、,1,个符号位、定点整数为例:,机器数,真值,00000000,0,00000001,1,01111111,127,10000000,-128,10000001,-127,10000010,-126,11111111,-1,8,位字长、无符号位、定点整数为例:,机器数,真值,00000000,0,00000001,1,01111111,127,10000000,128,10000001,129,10000010,130,11111111,255,2.5 机器数表示的范围补码、8位字长、1个符号位、定点整数,2.5,机器数表示的范围,浮点数的表示范围取决于尾数、阶码的位数,浮点数表示还存一个精度问题,精度取决于尾数的位数,位数越多,精度越高。,2.5 机器数表示的范围浮点数的表示范围取决于尾数、阶码,2.6,计算机中数据的表示,逻辑型数据,十进制数的编码,字符、汉字的编码,2.6 计算机中数据的表示逻辑型数据,2.6.1,逻辑型数据,逻辑型数据只有两个值:,真,和,假,,正好可以用二进制码的两个符号分别表示,例如:,1,表示,真,0,表示,假,逻辑型数据的基本运算:,与,或,非,逻辑运算没有进位、借位,X,Y,X,与,Y,X,或,Y,X,的非,X,异或,Y,0,0,0,0,1,0,0,1,0,1,1,1,1,0,0,1,0,1,1,1,1,1,0,0,2.6.1 逻辑型数据逻辑型数据只有两个值:真 和 假,2.6.2,十进制数的编码,用,4,位二进制码对每个十进制数位进行编码。,例如,,(36),10,(,0011,0110),2,为什么要用,4,位,而不是用,3,位,或其它?,有两类编码方法:,有权码:二进制码的每一位,有,确定的权值,无权码:二进制码的每一位,没有,确定的权值,2.6.2 十进制数的编码用4位二进制码对每个十进制数位进行,有权码,8421BCD,码:,8421,是指权值从高位到低位分别是,8,、,4,、,2,、,1,BCD(Binary Coded Decimal),对应关系如右表。,例,743,的,8421,码为:,011101000011,十进制数,8421,码,2421,码,0 0000 0000,1 0001 0001,2 0010 0010,3 0011 0011,4 0100 0100,5 0101 1011,6 0110 1100,7 0111 1101,8 1000 1110,9 1001 1111,有权码8421BCD码:十进制数 8421码,无权码,余,3,码:,8421,码,+(0011),2,格雷码(,Gray Code,)的编码规则:任意两个相邻的代码只有一位二进制数不同。,另外由于最大数与最小数之间也仅一位数不同,即“首尾相连”,因此又称,循环码。,十进制数 余,3,码 格雷码,0 0011 0000,1 0100 0001,2 0101 0011,3 0110 0010,4 0111 0110,5 1000 1110,6 1001 1010,7 1010 1000,8 1011 1100,9 1100 0100,无权码余3码:8421码+(0011)2十进制数 余,2.6.3,字符型数据表示,当前的西文字符集,由,128,个符号组成,通常用,7,位二进制编码,通常,用一个字节来表示一个符号,,常用的标准字符集是:,ASCII,码,2.6.3 字符型数据表示当前的西文字符集由 128 个符号,ASCII,码字符集,ASCII码字符集,2.6.4,汉字编码,通常用两个字节表示一个汉字。,为了与西文字符编码相区别(西文的,ASCII,码的最高一位编码值为,0,),表示一个汉字时,把两个字节的最高一位的编码值设定为,1,,则该编码集的最多编码数量为,128,128,。,UNICODE,编码,是完全双字节表示的多国文字编码体系,编码空间,0 x0000-0 xFFFF,。可以表示,65536,个字符;,ISO 10646.1,汉字标准使用编码,0 x4E00-9FA5,共包含,20902,个汉字。,2.6.4 汉字编码通常用两个字节表示一个汉字。,小结,数值型,数据,二进制数,BCD,码,定点数,浮点数,原码,反码,补码,阶码,+,尾数,移码,8421,码,余,3,码,格雷码,字符型,数据,西文,中文,交换码,机内码,ASCII,码,
展开阅读全文