资源描述
11.常用常用计数法数法 十十进制制 二二进制制 十六十六进制制2十十进制制特点:特点:以十以十为底,逢十底,逢十进一;一;有有0 0-9 9十个数字符号十个数字符号。用用D D表示。表示。权值表达式:表达式:3二二进制制特点:特点:以以2为底,逢底,逢2进位;只有位;只有0和和1两个符号。两个符号。用用B表示。表示。权值表达式表达式:4十六十六进制制特点:特点:有有0-9及及A-F共共16个数字符号,逢个数字符号,逢16进位。位。用用H表示表示。权值表达式表达式:5例:例:234.98D或(或(234.98)D1101.11B或(或(1101.11)BABCD.BFH或(或(ABCD.BF)H62.各种各种进制数制数间的的转换非十非十进制数到十制数到十进制数的制数的转换十十进制到非十制到非十进制数的制数的转换二二进制与十六制与十六进制数之制数之间的的转换 7非十非十进制数到十制数到十进制数的制数的转换按相按相应应的的权权值表达式展开表达式展开例:例:1011.11B=123+022+121+120+12-1+12-2 =8+2+1+0.5+0.25 =11.755B.8H=5161+11160+816-1 =80+11+0.5 =91.58十十进制到非十制到非十进制数的制数的转换到二到二进制的制的转换:对整数:除整数:除2取余;取余;对小数:乘小数:乘2取整。取整。到十六到十六进制的制的转换:对整数:除整数:除16取余;取余;对小数:乘小数:乘16取整。取整。9 整数部分(除整数部分(除整数部分(除整数部分(除2 2逆取余)逆取余)逆取余)逆取余)175D175D1751752 287872 21 143432 21 121212 21 12 21 15 52 20 02 22 21 11 12 20 00 01 1余数余数余数余数最低位最低位最低位最低位最高位最高位最高位最高位所以:所以:所以:所以:175 D=10101111 B175 D=10101111 B1010十进制二进制(一)10 小数部分(乘小数部分(乘小数部分(乘小数部分(乘2 2顺取整)顺取整)顺取整)顺取整)0.625D0.625D0.6250.625.250.250整数整数整数整数最低位最低位最低位最低位最高位最高位最高位最高位所以:所以:所以:所以:0.625 D=0.101 B0.625 D=0.101 B.500.5002 2x x.000.0002 2x x2 2x x1 10 01 1十进制二进制(二)11二二进制与十六制与十六进制制间的的转换用用4位二位二进制数表示制数表示1位十六位十六进制数制数例:例:25.5 =11001.1B=19.8H 11001010.0110101B =CA.6AH121.3 二二进制数的运算制数的运算主要内容主要内容二二二二进进制数的算制数的算制数的算制数的算术术运算运算运算运算二二二二进进制数的制数的制数的制数的逻辑逻辑运算运算运算运算131.1.二进制数的算术运算二进制数的算术运算二进制数的算术运算二进制数的算术运算(1)加:0+0=00+1=11+0=11+1=0(进1)(2)减:0-0=01-1=01-0=10-1=1(借位)(3)乘:00=001=010=011=1(4)除:二进制除法是乘法的逆运算。14 2.2.二进制数的逻辑运算二进制数的逻辑运算二进制数的逻辑运算二进制数的逻辑运算(1)“与“运算(AND).“与”运算又称逻辑乘,可用符号“”或“”表示。运算规则如下:00=001=010=011=1可以看出,只有当两个变量均为“1”时,“与”的结果才为“1”。15(2)“或”运算(OR)“或”运算又称逻辑加,可用符号“”或“+”表示。运算规则如下:00=001=110=111=1可以看出,两个变量只要有一个为“1”,“或”的结果就为“1”。16(3)“非”运算(NOT)变量的“非”运算结果用表示。逻辑“非”运算规则如下:(4)“异或”运算(XOR)“异或”运算可用符号“”表示。运算规则如下:可以看出,两变量只要不同,“异或”运算的结果就为“1”。17(4)“异或”运算(XOR)“异或”运算可用符号“”表示。运算规则如下:可以看出,两变量只要不同,“异或”运算的结果就为“1”。18例例 2.7A=11110101B,B=00110000B,求解解191.4 带符号数的表示及运算符号数的表示及运算主要内容主要内容机器数与真机器数与真值值机器数的表示方法机器数的表示方法真真值值与机器数之与机器数之间间的的转换转换补码补码的加减运算的加减运算溢出及其判断方法溢出及其判断方法溢出及其判断方法溢出及其判断方法201.4 带符号数的表示及运算带符号数的表示及运算 一、一、一、一、机器数与真值机器数与真值日常生活中遇到的数,除了上述无符号数外,还有带符号数。对于带符号的二进制数,其正负符号如何表示呢?在计算机中,为了区别正数和负数,通常用二进制数的最高位表示数的符号。对于一个字节型二进制数来说,D7位为符号位,D6D0位为数值位。在符号位中,规定用“0”表示正,“1”表示负,而数值位表示该数的数值大小。把一个数及其符号位在机器中的一组二进制数表示形式,称为“机器数”。机器数所表示的值称为该机器数的“真值”。21二、二、二、二、机器数的表示方法机器数的表示方法1 1.原码原码设数x的原码记作x原,如机器字长为n,则原码定义如下:在原码表示法中,最高位为符号位(正数为0,负数为1),其余数字位表示数的绝对值。22例如,当机器字长n=8时,+0原=00000000B-0原=27+0(按定义计算,下同)=10000000B+8原=00001000B-8原=27+8=10001000B+127原=01111111B-127原=27+127=11111111B当机器字长n=16时,+0原=0000000000000000B-0原=215+0=1000000000000000B+8原=0000000000001000B-8原=215+8=1000000000001000B+32767原=0111111111111111B-32767原=215+32767=1111111111111111B23可以看出,8位二进制原码原码表示数的范围为-127-127 +127+127,16位二进制原码表示数的范围为-32767-32767 +32767+32767;“0”的原码有两种表示法:00000000表示+0,10000000表示-0。24原码表示法简单直观,且与真值的转换很方便,但不便于在计算机中进行加减运算。如进行两数相加,必须先判断两个数的符号是否相同。如果相同,则进行加法运算,否则进行减法运算。如进行两数相减,必须比较两数的绝对值大小,再由大数减小数,结果的符号要和绝对值大的数的符号一致。按上述运算方法设计的算术运算电路很复杂。因此,计算机中通常因此,计算机中通常因此,计算机中通常因此,计算机中通常使用补码进行加减运算,这样就引入了使用补码进行加减运算,这样就引入了使用补码进行加减运算,这样就引入了使用补码进行加减运算,这样就引入了反码表示法反码表示法反码表示法反码表示法和和和和补码表示补码表示补码表示补码表示法法法法。252.反码设数x的反码记作x反,如机器字长为n,则反码定义如下:正数的反码与其原码相同。例如,当机器字长n=8时:+0反=+0原=00000000B+127反=+127原=01111111B当机器字长n=16时:+8反=+8原=0000000000001000B+127反=+127原=0000000001111111B26负数的反码是在原码基础上,符号位不变(仍为1),数值位按位取反。例如,当机器字长n=8时:-0反=(28-1)-0=11111111B-127反=(28-1)-127=10000000B反码表示数的范围是:8位二进制反码位二进制反码表示数的范围为-127-127 +127+127,16位二进制反码位二进制反码表示数的范围为-32767-32767 +32767+32767;“0”的反码有两种表示法:00000000表示+0,11111111表示-0。27 3.补码设数x的补码记作x补,如机器字长为n,则补码定义如下:正数的补码与其原码、反码相同。例如,当机器字长n=8时:+8补=+8反=+8原=00001000B+127补=+127反=+127原=01111111B当机器字长n=16时:+8补=+8反=+8原=0000000000001000B+127补=+127反=+127原=0000000001111111B612391028负数的补码是在原码基础上,符号位不变(仍为1),数值位按位取反,末位加1;或在反码基础上末位加1。例如,当机器字长n=8时:-8原=10001000B-127原=11111111B-8反=11110111B-127反=10000000B-8补=28-8=11111000B-127补=28-127=10000001B可以看出,8位二进制补码位二进制补码表示数的范围为-128-128 +127+127,16位二进制补码表示数的范围为-32768-32768 +32767+32767。8位二进制数的原码、反码和补码如表2.1所示。29表表1.1 8位二进制数的原码、反码和补码表位二进制数的原码、反码和补码表 二进制数无符号十进制数带符号数原码反码补码00000000000000010000001001111110011111111000000010000001111111011111111011111111012126127128129253254255+0+1+2+126+127-0-1-125-126-127+0+1+2+126+127-127-126-2-1-0+0+1+2+126+127-128-127-3-2-130三、三、三、三、真值与机器数之间的转换真值与机器数之间的转换1 1原码转换为真值原码转换为真值根据原码定义,将原码数值位各位按权展开求和,由符号位决定数的正负即可由原码求出真值。例例已知x原=00011111B,y原=10011101B,求x和yx=+(026+025+124+123+122+121+120)=31y=-(026+025+124+123+122+021+120)=-29312.2.反码转换为真值反码转换为真值要求反码的真值,只要先求出反码对应的原码,再按上述原码转换为真值的方法即可求出其真值。正数的原码是反码本身。负数的原码可在反码基础上,符号位仍为1不变,数值位按位取反。例例已知x反=00001111B,y反=11100101B,求x和y解解x原=x反=00001111B,x=+(026+025+024+123+122+121+120)=15y原=10011010B,y=-(026+025+124+123+022+121+020)=-26323.3.补码转换为真值补码转换为真值补码转换为真值补码转换为真值同理,要求补码的真值,也要先求出补码对应的原码。正数的原码与补码相同。负数的原码可在补码基础上再次求补,即:33例例已知x补=00001111B,y补=11100101B,求x和y解解x原=x补=00001111B,x=+(026+025+024+123+122+121+120)=15y原=y补补=10011011B,y=-(026+025+124+123+022+121+120)=-2734四、四、四、四、补码的加减运算补码的加减运算1.1.补码加法补码加法在计算机中,凡是带符号数一律用补码表示,运算结果自然也是补码。其运算特点是:符号位和数值位一起参加运算,并且自动获得结果(包括符号位与数值位)。补码加法的运算规则为:即:两数补码的和等于两数和的补码。35 例例已知+51补=00110011B,+66补=01000010B,-51补=11001101B,-66补=10111110B求求+66补+51补=?+66补+-51补=?-66补+-51补=?解:二进制(补码)加法 十进制加法01000010+66补+66+)00110011+51补+)+5101110101+117补+11736 二进制(补码)加法 十进制加法01000010+66补+66+)11001101-51补+)-5100001111+15补+151自动丢失由于+66补+51补=(+66)+(+55)补=01110101B结果为正,因此(+66)+(+55)原=(+66)+(+55)补=01110101B其真值为+117,计算结果正确。37 二进制(补码)加法 十进制加法10111110-66补-66+)11001101-51补+)-5110001011-117补-1171自动丢失由于+66补+51补=(+66)+(55)补=0000111B结果为正,因此(+66)+(55)原=(+66)+(55)补=00001111其真值为+15,计算结果正确。38由于-66补+-51补=10001011B=(-66)+(-55)补结果为负,因此(-66)+(-55)原=(-66)+(-55)补补=11110101B其真值为-117,计算结果正确。可以看出,不论被加数、加数是正数还是负数,只要直接用它们的补码直接相加,当结果不超出补码所表示的范围时,计算结果便是正确的补码形式。但当计算结果超出补码表示范围时,结果就不正确了,这种情况称为溢出溢出溢出溢出。39 2.2.补码减法补码减法补码减法补码减法补码减法的运算规则为:40例例已知+51补=00110011B,+66补=01000010B51补=11001101B,66补=10111110B求+66补+51补=?-66补-51补=?解+66补-+51补=+66补+-51补-66补-51补=-66补+51补41 二进制(补码)加法 十进制加法10111110-66补-66+)00110011+51补-)-5111110001-15补-15 二进制(补码)加法 十进制加法01000010+66补+66+)11001101-51补-)+5100001111+15补+151自动丢失42可以看出,无论被减数、减数是正数还是负数,上述补码减法的规则都是正确的。同样,由最高位向更高位的进位会自动丢失而不影响运算结果的正确性。计算机中带符号数用补码表示时有如下优点:可以将减法运算变为加法运算,因此可使用同一个运算器可以将减法运算变为加法运算,因此可使用同一个运算器可以将减法运算变为加法运算,因此可使用同一个运算器可以将减法运算变为加法运算,因此可使用同一个运算器实现加法和减法运算,简化了电路实现加法和减法运算,简化了电路实现加法和减法运算,简化了电路实现加法和减法运算,简化了电路。43 无符号数和带符号数的加法运算可以用同一个加法器实无符号数和带符号数的加法运算可以用同一个加法器实无符号数和带符号数的加法运算可以用同一个加法器实无符号数和带符号数的加法运算可以用同一个加法器实现,结果都是正确的。例如:现,结果都是正确的。例如:现,结果都是正确的。例如:现,结果都是正确的。例如:无符号数带符号数11100001225-31补+)00001101+)13+)+13补11101110238-18补若两操作数为无符号数时,计算结果为无符号数11101110B,其真值为238,结果正确;若两操作数为补码形式,计算结果也为补码形式,11101110B为18的补码,结果也是正确的。44五、五、五、五、溢出及其判断方法溢出及其判断方法溢出及其判断方法溢出及其判断方法 1.进位与溢出进位与溢出所谓进进进进位位位位,是指运算结果的最高位向更高位的进位,用来判断无符号数运算结果是否超出了计算机所能表示的最大无符号数的范围。溢出溢出溢出溢出是指带符号数的补码运算溢出,用来判断带符号数补码运算结果是否超出了补码所能表示的范围。例如,字长为n位的带符号数,它能表示的补码范围为-2n-1+2n-1-1,如果运算结果超出此范围,就叫补码溢出,简称溢出。45 2.溢出的判断方法判断溢出的方法很多,常见的有:通过参加运算的两个数的符号及运算结果的符号进行判断。单单单单符符符符号号号号位位位位法法法法。该方法通过符号位和数值部分最高位的进位状态来判断结果是否溢出。双双双双符符符符号号号号位位位位法法法法,又称为变形补码法。它是通过运算结果的两个符号位的状态来判断结果是否溢出。上述三种方法中,第一种方法仅适用于手工运算时对结果是否溢出的判断,其他两种方法在计算机中都有使用。限于篇幅,本节仅通过具体例子对第种方法做简要介绍。46若符号位进位状态用CF来表示,当符号位向前有进位时,CF=1,否则,CF=0;数值部分最高位的进位状态用DF来表示,当该位向前有进位时,DF=1,否则,DF=0。单符号位法就是通过该两位进位状态的异或结果来判断是否溢出的。若OF=1,说明结果溢出;若OF=0,则结果未溢出。也就是说,当符号位和数值部分最高位同时有进位或同时没有进位时,结果没有溢出,否则,结果溢出。47例设有两个操作数x=01000100B,y=01001000B,将这两个操作数送运算器做加法运算,试问:若为无符号数,计算结果是否正确?若为带符号补码数,计算结果是否溢出?解解 无符号数带符号数0100010068+68补+)01001000+)72+)+72补10001100140+140补DF=1CF=048若为无符号数,由于CF=0,说明结果未超出8位无符号数所能表达的数值范围(0255),计算结果10001100B为无符号数,其真值为140,计算结果正确。若为带符号数补码,由于OF=1,结果溢出;这里也可通过参加运算的两个数的符号及运算结果的符号进行判断,由于两操作数均为正数,而结果却为负数,因而结果溢出;+68和+72两数补码之和应为+140的补码,而8位带符号数补码所能表达的数值范围为128+127,结果超出该范围,因此结果是错误的。49例设有两个操作数x=11101110B,y=11001000B,将这两个操作数送运算器做加法运算,试问:若为无符号数,计算结果是否正确?若为带符号补码数,计算结果是否溢出?解解 无符号数带符号数11101110238-18补+)11001000+)200+)-56补10110110438-74补DF=1CF=01自动丢失50若为无符号数,由于CF=1,说明结果超出8位无符号数所能表达的数值范围(0255)。两操作数11101110B和11001000B对应的无符号数分别为238和200,两数之和应为438255,因此,计算结果是错误的。若为带符号数补码,由于OF=0,结果未溢出。两操作数11101110B和11001000B分别为18和56的补码,其结果应为74的补码形式,而计算结果10110110B正是74的补码,因此结果正确。511.5 信信 息息 的的 编 码计算机能算机能够直接直接识别和和处理的只有二理的只有二进制数,但人制数,但人们在生活、学在生活、学习和工作中更和工作中更习惯用十用十进制数,所以制数,所以在某些在某些场合下也希望合下也希望计算机能直接算机能直接处理十理十进制形式制形式表示的数据。表示的数据。现代代计算机不算机不仅要要处理数理数值领域的域的问题,还需要需要处理大量非数理大量非数值领域的域的问题,如文字,如文字处理、信息理、信息发布布等,等,这就要求就要求计算机算机还应能能够识别和和处理文字、字理文字、字符和各种符号。符和各种符号。所有所有这些字符、符号以及十些字符、符号以及十进制数最制数最终都不都不许转换为二二进制格式的代制格式的代码才能才能为计算机所算机所处理,即字符理,即字符和十和十进制数都必制数都必须用若干位二用若干位二进制制码来表示,来表示,这就就是信息和数据的二是信息和数据的二进制制编码。52一、一、一、一、二进制编码的十进制数二进制编码的十进制数二进制编码的十进制数二进制编码的十进制数(BCD(BCD编码编码编码编码)虽然二进制数对计算机来说是最佳的数制,但是人们却不习虽然二进制数对计算机来说是最佳的数制,但是人们却不习惯使用它。为了解决这一矛盾,人们提出了一个比较适合于十进惯使用它。为了解决这一矛盾,人们提出了一个比较适合于十进制系统的二进制编码的特殊形式,即将制系统的二进制编码的特殊形式,即将1位十进制的位十进制的0 9这这10个数个数字分别用字分别用4位二进制码的组合来表示,在此基础上可按位对任意位二进制码的组合来表示,在此基础上可按位对任意十进制数进行编码。这就是二进制编码的十进制数,简称十进制数进行编码。这就是二进制编码的十进制数,简称BCD码码(Binary-Coded Decimal)。534位二进制数码有16种组合(00001111),原则上可任选其中的10个来分别代表十进制中09这10个数字。但为了便于记忆,最常用的是8421BCD码,这种编码从00001111这16种组合中选择前10个即00001001来分别代表十进制数码09,8、4、2、1分别是这种编码从高位到低位每位的权值。BCD码有两种形式,即压缩型BCD码和非压缩型BCD码。54 1 1压缩型压缩型压缩型压缩型BCDBCD码码码码压缩型BCD码用一个字节表示两位十进制数。例如,10000110B表示十进制数86。2 2非压缩型非压缩型非压缩型非压缩型BCDBCD码码码码非压缩型BCD码用一个字节表示一位十进制数。高4位总是0000,低4位用00001001中的一种组合来表示09中的某一个十进制数。55表表2 8421 BCD 码部分编码表码部分编码表 十进制数压缩型BCD码非压缩型BCD码12391011192021000000010000001000000011000010010001000000010001000110010010000000100001000000010000001000000011000010010000000100000000000000010000000100000001000010010000001000000000000000100000000156需要说明的是,虽然BCD码可以简化人机联系,但它比纯二进制编码效率低,对同一个给定的十进制数,用BCD码表示时需要的位数比用纯二进制码多,而且用BCD码进行运算所花的时间也要更多,计算过程更复杂,因为BCD码是将每个十进制数用一组4位二进制数来表示,若将这种BCD码送计算机进行运算,由于计算机总是将数当作二进制数来运算,所以结果可能出错,因因此需要对计算结果进行必要的此需要对计算结果进行必要的修正修正修正修正,才能使结果为正确的,才能使结果为正确的BCD码码形式。形式。57例 十进制数与BCD数相互转换。将十进制数69.81转换为压缩型BCD数:69.81=(01101001.10000001)BCD将BCD数10001001.01101001转换为十进制数:(10001001.01101001)BCD=89.6958例设有变量x等于10010110B,当该变量分别为无符号数、原码、补码、压缩型BCD码时,试分别计算变量x所代表的数值大小。解无符号数:x=10010110B=127+026+025+124+023+122+121+020=150原码:x原=10010110B x=-026+025+124+023+122+121+020=-22补码:x补=10010110B x原=x补补=11101010B x=-126+125+024+123+022+121+020=-106BCD码:xBCD=10010110B x=9659例(BCD码运算时的修正问题)用BCD码求38+49。解0011100038的BCD码+)0100100149的BCD码1000000181的BCD码计算结果10000001是81的BCD数,而正确结果应为87的BCD数10000111,因此结果是错误的。其原因是,十进制数相加应该是“逢十进一”,而计算机按二进制数运算,每4位为一组,低4位向高4位进位与十六进制数低位向高位进位的情况相当,是“逢十六进一”,所以当相加结果超过9时将比正确结果少6,因此结果出错。解决办法是对二进制加法运算结果采用“加6修正”,从而将二进制加法运算的结果修正为BCD码加法运算结果。60BCDBCD数相加时,对二进制加法运算结果修正的规则如下:数相加时,对二进制加法运算结果修正的规则如下:数相加时,对二进制加法运算结果修正的规则如下:数相加时,对二进制加法运算结果修正的规则如下:如如如如果果果果两两两两个个个个对对对对应应应应位位位位BCDBCD数数数数相相相相加加加加的的的的结结结结果果果果向向向向高高高高位位位位无无无无进进进进位位位位,且且且且结结结结果果果果小小小小于于于于或或或或等等等等于于于于9 9,则则则则该该该该位位位位不不不不需需需需要要要要修修修修正正正正;若若若若得得得得到到到到的的的的结结结结果果果果大大大大于于于于9 9而而而而小小小小于于于于1616,则该位需要加,则该位需要加,则该位需要加,则该位需要加6 6修正。修正。修正。修正。如如如如果果果果两两两两个个个个对对对对应应应应位位位位BCDBCD数数数数相相相相加加加加的的的的结结结结果果果果向向向向高高高高位位位位有有有有进进进进位位位位(结结结结果果果果大大大大于于于于或等于或等于或等于或等于16)16),则该位需要进行加,则该位需要进行加,则该位需要进行加,则该位需要进行加6 6修正。修正。修正。修正。因此,两个BCD数进行运算时,首先按二进制数进行运算,然后必须用相应的调整指令进行调整,从而得到正确的BCD码结果。有关BCD运算结果的调整指令将在第4章“80 x86指令系统”中介绍。61二、二、二、二、ASCIIASCII字符编码字符编码字符编码字符编码所谓字符,是指数字、字母以及其他一些符号的总称。所谓字符,是指数字、字母以及其他一些符号的总称。现代计算机不仅用于处理数值领域的问题,而且要处理大量的非数值领域的问题。这样一来,必然需要计算机能对数字、字母、文字以及其他一些符号进行识别和处理,而计算机只能处理二进制数,因此,通过输入/输出设备进行人机交换信息时使用的各种字符也必须按某种规则,用二进制数码0和1来编码,计算机才能进行识别与处理。62目前,国际上使用的字符编码系统有许多种。在微机、通信设备和仪器仪表中广泛使用的是ASCIIASCII码码码码(American American Standard Standard Code Code for for Information Information InterchangeInterchange)美美美美国国国国标标标标准准准准信信信信息息息息交交交交换换换换码码码码。ASCII码用一个字节来表示一个字符,采用7位二进制代码来对字符进行编码,最高位一般用做校验位。7位ASCII码能表示27=128种不同的字符,其中包括数码(09),英文大、小写字母,标点符号及控制字符等,见表2.3。该表的使用方法读者应熟练掌握。如数字“1”的ASCII码值为31H,字母“A”的ASCII码值为41H,符号“?”的ASCII码值为3FH等。63表表2.3 美国标准信息交换码美国标准信息交换码ASCII(7位代码位代码)641.6 数的定点与浮点表示法数的定点与浮点表示法 一、一、一、一、定点表示定点表示定点表示定点表示所谓定点表示法,是指小数点在数中的位置是固定的。原理上讲,小数点的位置固定在哪一位都是可以的,但通常将数据表示成纯小数或纯整数形式,如图2.1所示。图2.1定点数的两种表示方法(a)纯小数形式;(b)纯整数形式65设用一个n+1位字来表示一个数x,其中一位表示符号位(0表示正,1表示负),其他n位为数值位。对于纯小数表示法,所能表示的数x(原码表示,下同)的范围为:-(1-2-n)x1-2-n(2.4.1)它能表示的数的最大绝对值为1-2-n,最小绝对值为2-n。对于纯整数表示法,所能表示的数x的范围为:-(2n-1)x2n-1(2.4.2)它能表示的数的最大绝对值为2n-1,最小绝对值为1。66二、二、浮点表示浮点表示所谓浮点表示法,就是小数点在数中的位置是浮动的。任意一个二进制数x总可以写成如下形式:(2.4.3)其中,d称为尾数,是二进制纯小数,指明数的全部有效数字,前面的符号称为数符,表示数的符号,该位为0,表明该浮点数为正,该位为1,表明该浮点数为负;p称为阶码,它前面的符号称为阶符,阶码为正时,用0表示,阶码为负时,用1表示。阶符阶码(p)数符尾数(d)1位m位1位n位67可以看出,将尾数d的小数点向右(阶码p为正时)或向左(阶码p为负时)移动p位,即可得到该浮点数表示的数值x。阶码p指明小数点的位置,小数点随着阶码的大小和正负而浮动,因此把这种数称为浮点数。设阶码的位数为m位,尾数的位数为n位,则该浮点数表示的数值范围为:(2.4.4)在字长相同的情况下,浮点数能表示的数值范围比定点数大得多,且精度高,但浮点运算规则复杂。
展开阅读全文