【文档说明】计算机系统与网络维护-运算方法与运算器解析课件.ppt,共(26)页,464.002 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-76841.html
以下为本文档部分文字说明:
2运算方法与运算器22014年10月计算机系统与网络维护学习目标•能正确读出机器浮点数对应的真值•能计算出机器数表示的范围•知道字符(包括汉字)的机器表示学习内容•浮点数的表示•机器数表示的范围•计算机中数据的表示•参考资料–浮点数的二进制表示学习笔记–http:/
/blog.163.com/yql_bl/blog/static/847851692008112013117685/2.4浮点数的表示•十进制的科学记数法–38414.40.384144X105–0.05750.575X10-1•浮点数的二进
制表示–M·2E–M:称为尾数,是一个定点小数–E:称为阶码,是一个定点整数–(5.75)10=(101.11)2=0.10111x211•M=(0.10111)2E=(11)2•浮点数在机器内的表示阶码尾数符号位•举例(-1101.00101)2在机内的浮
点表示。•设机器字长为16位,尾数占10位,阶码占6位。•解:(-1101.00101)2=-0.110100101×24,即:尾数为-0.110100101,阶码为+4,若都采用原码表示时,则有机内的表示形式:0001001110100101阶码尾数2.4.1尾数规格化•所
谓浮点数的规格化就是其尾数的第一位要为1,若不为1,就要用“左规”的方法使其为1。–左规就是尾数向左移动(同时调整阶码),直至尾数的第一位为1或阶码为全0或最小值。•如:210×0.1101就是规格化的浮点数;而211×0.0110是非规格化的浮点数。•例:把非规格化的浮点数N=211×0.011
0规格化。–解:把浮点数N的尾数向左移一位(或尾数的小数点右移一位),变成0.1100,同时,阶码递减1,得到N=210×0.1100,就是规格化的浮点数。2.4.2移码•在计算机中,尾数一般用补码表示,阶码一般用移码表示。•移码:又叫增码,是符号位取反
的补码。•例如:(设5位)X=+1011[X]补=01011[X]移=11011X=-1011[X]补=10101[X]移=00101•也可以定义为:[X]移=2n-1+X–n为阶码的位数(含符号位)X=1011=(11)10,[X]移=24+11=16+11=27=(11011)2X=
-1011=(-11)10,[X]移=24-11=16-11=5=(00101)2例•例1,32位字长,其中:1个符号位,8位阶码(用移码表示),23位尾数。写出(15.75)10的机器表示。•解:–将15.75转换成二进制数:1111.11–规
格化:1111.110.111111x24–计算移码:4=(100)2(10000100)2–结果:01000010011111100000000000000000符号位阶码尾数•例2,16位字长,其中:1个符号位,5位阶码(用移码表示),
10位尾数(用补码表示)。写出(-15.75)10的机器表示。•解:–将-15.75转换成二进制数:-1111.11–规格化:-1111.11-0.111111x24–求尾数的补码:[-0.1111110000]补=0.0000010000–计算移码:4=(100)2(10100)2–结果:1
101000000010000•例3,16位字长,其中:1个符号位,5位阶码(用移码表示),10位尾数(用原码表示)。写出(0.075)10的机器表示。•解:–求(0.075)10的二进制数:0.000100110011–规格化尾数:0.1001100110x2-3–求移码:-3=(-0011)2
(01101)移–结果:0011011001100110•例4,16位字长,其中:1个符号位,5位阶码(用移码表示),10位尾数(用原码表示)。请写出下列机器浮点数对应的真值(二进制数)。(1)111001110100
0000(2)0010011101000000•(1)解:–移码11001的真值是:9–尾数:-0.1101–真值:-0.1101x29=110100000•(2)解:–移码01001的真值是:-7–尾数:0.1101–真值:0.1101x2-7=0.000000011012
.4.3IEEE浮点数表示规则符号位的位数阶码的位数尾数的位数总长度Float(单精度)182332Double(双精度)1115264IEEE754的浮点数•例:已知:整数3490593(16进制表示为0x35
4321)。求:其对应的浮点数3490593.0的二进制表示(float)。解法如下:•先求出整数3490593的二进制表示:H:354321(十六进制表示)B:001101010100001100100001(二进制表示)即:(1
.101010100001100100001)2×221•可见,从左算起第一个1后有21位,我们将这21为作为浮点数的尾数,小数前的一位默认为1,不保存。这样的小数称为规格化数。浮点数的尾数表示为:10101010000110010000100(补上2位,共23位)•阶
码:指数的实际值加上某个固定的值(固定值为2e-1–1,e为阶码位数),所以阶码=2e-1–1+21=28-1–1+21=127+21=148=(10010100)2•机器数为:0100101001010101000011001000010
0尾数的符号位阶码尾数非标准移码(用原码表示)2.4.4浮点数运算•5个步骤:−1.“对阶”操作−2.尾数的加/减运算−3.规格化操作−4.舍入−5.检查阶码是否溢出2.5机器数表示的范围•机器数的编码有:–原码、补码、反码、移码–浮点数
•机器数值的范围取决于:–字长:二进制位数,如8、16、32、64……–符号位:有符号位、无符号位–编码方式2.5机器数表示的范围•补码、8位字长、1个符号位、定点整数为例:机器数真值000000000000000011……0111111112710000000
-12810000001-12710000010-126……11111111-1•8位字长、无符号位、定点整数为例:机器数真值000000000000000011……011111111271000000012
81000000112910000010130……111111112552.5机器数表示的范围•浮点数的表示范围取决于尾数、阶码的位数•浮点数表示还存一个精度问题,精度取决于尾数的位数,位数越多,精度越高。2.6计算机中数据的表示•逻辑型数据•十进制数的编码•字符、
汉字的编码2.6.1逻辑型数据•逻辑型数据只有两个值:真和假,正好可以用二进制码的两个符号分别表示,例如:1表示真0表示假•逻辑型数据的基本运算:与或非•逻辑运算没有进位、借位XYX与YX或YX的非X异或Y0000100101111001011111002.6.2十进制数的编码•用4位
二进制码对每个十进制数位进行编码。–例如,(36)10(00110110)2–为什么要用4位,而不是用3位,或其它?•有两类编码方法:–有权码:二进制码的每一位有确定的权值–无权码:二进制码的每一位没有确定的权值有权码•8421BCD码:–8421是指权值从高位到低位分别是
8、4、2、1–BCD(BinaryCodedDecimal)–对应关系如右表。•例743的8421码为:011101000011十进制数8421码2421码000000000100010001200100010300110011401
000100501011011601101100701111101810001110910011111无权码•余3码:8421码+(0011)2•格雷码(GrayCode)的编码规则:任意两个相邻的代码只有一位二进制数不同。•另外由于最大数与最小数之间也仅一位数不同,
即“首尾相连”,因此又称循环码。十进制数余3码格雷码0001100001010000012010100113011000104011101105100011106100110107101010008101111009
110001002.6.3字符型数据表示•当前的西文字符集由128个符号组成,通常用7位二进制编码,通常用一个字节来表示一个符号,常用的标准字符集是:ASCII码LH0000010100111001011101110000NULDLESP0@P`p0001SOHDC1!1AQaq0010ST
XDC2"2BRbr0011ETXDC3#3CScs0100EOTDC4$4DTdt0101ENGNAK%5EUeu0110ACKSYN&6FVfv0111BELETB'7GWgw1000BSCAN(8HXhx1001HTEM)9IYiy1
010LFSUB*:JZjz1011VTESC+;K[k{1100FFFS,<L\l|1101CRGS-=M]m}1110SORS.>Nn~1111SIUS/?OoDEL注:H表示高3位,L表示低4位。ASCII码字符集2
.6.4汉字编码•通常用两个字节表示一个汉字。•为了与西文字符编码相区别(西文的ASCII码的最高一位编码值为0),表示一个汉字时,把两个字节的最高一位的编码值设定为1,则该编码集的最多编码数量为12
8×128。•UNICODE编码是完全双字节表示的多国文字编码体系,编码空间0x0000-0xFFFF。可以表示65536个字符;•ISO10646.1汉字标准使用编码0x4E00-9FA5,共包含20902个汉字。小结数值型数据二进制数
BCD码定点数浮点数原码反码补码阶码+尾数移码8421码余3码格雷码字符型数据西文中文交换码机内码ASCII码