您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 2 计算机中数据的表示及其运算
大学计算机基础第二讲4.3计算机中数据的表示及其运算计算机进行数据处理时,首先要将相应的数据输入到计算机中,并以一定的形式存储在计算机中。计算机内部是一个二进制数字世界,所以,不管是数值数据还是非数值数据,都必须转换成二进制数的形式,才能存入计算机中。数值数据有确定的值并在数轴上有对应的点。是非数值数据非数值数据没有确定的值,如字符、文字、图像、声音、逻辑数据等。3)计算机中采用二进制的原因(1)物理实现容易,(2)二进制运算简单,(3)机器可靠性高,(4)通用性强输入设备输出设备十-二进制转换英文输入码-机内码转换模数转换二-十进制转换英文字形码汉字字形码数模转换数值ASCII码汉字声音、图像内存数值英文汉字声音、图像图4.25各种数据在计算机中的转换过程4.3.1进位计数制1)进位计数制任何一种计数制,都具有以下三个要点:(1)数制使用的数码。十进制含10个数码:0~9;二进制含2个数码:0,1等。(2)进位规则。十进制为逢十进一;二进制为逢二进一等。(3)每一个数位上数码所具有的权。十进制数码各位的权是以10为底的幂,二进制数码各位的权是以2为底的幂。例如,数828.8的值为8×102+2×101+8×100+8×10-1其中,102、101、100、10-1称为权。对于任何一个十进数N,都可以表示成按权展开的多项式:N=dn×10n+dn-1×10n-1+…+d1×101+d0×100+d-1×10-1+…+d-m×10-m=di×10i其中,di是0—9十个数字中的任意一个,m、n是正整数,10被称为十进制数的基数,它是相邻数位的权之比。一般而言,对于用R进制表示的数N(R为任意正整数),可以按权展开为:N=Kn×Rn+Kn-1×Rn-1+…+K1×R1+K0×R0+K-1×R-1+…+K-m×R-m=Ki×Ri其中,Ki是0,1,…,(R-1)个数字中的任意一个,m、n是正整数,R是基数。表4.1列出了计算机中常用的四种进位计数制。其中十六进制中的A,B,C,D,E,F分别相当于十进制中10,11,12,13,14,15的值。进位制二进制八进制十进制十六进制规则逢二进一借一当二逢八进一借一当八逢十进一借一当十逢十六进一借一当十六基数R=2R=8R=10R=16数符0,10,1,2,…,70,1,2,…,90,1,2,…,9A,B,C,D,E,F权2i8i10i16i形式表示BODH在十进制中,如将某数的各位向左移动1位,则其值增大到原来的十倍;如将某数的各位向右移动1位,则其值减少到原来的十分之一。同样,在二进制中,如将数的各位向左移动1位,则其值增大到原来的二倍;反之将数的各位向右移动1位,则其值减少到原来的二分之一。例如,二进数101011.1在左移1位或右移1位后,其值的变化如下:二进数值101011.143.5向左移1位1010111.087向右移1位10101.1121.752)不同进位计数制之间的转换转换所依据的原则是:如果两个数的值相等,则两数的整数部分和小数部分的值一定分别相等。(1)二进制、八进制和十六进制数转换为十进制数。任意R进制数转换成十进制数比较简单,只需按权展开然后相加,其和便是相应的十进制数。这种方法称为按权相加法。【例4-1】求与(11011.01)2等值的十进数解:(11011.01)2=1×24+1×23+0×22+1×21+1×20+0×2-1+1×2-2=16+8+0+1+0+0.25=(27.25)10【例4-2】将十六进制数35B转换成十进数.解:(35B)16=3×162+5×161+11×160=768+80+11=(859)10(2)十进制数转换成二进制数、八进制或十六进制数整数部分:除基取余法【例4-3】把18转换成二进制数。解:218………余0(K0)29………余1(K1)24………余0(K2)22………余0(K3)21………余1(K4)0所以(18)10=(10010)2小数部分:乘基取整法【例4-4】将(0.8125)10转换成二进制数。解:0.8125×21.6250…………1(K-1)×21.2500…………1(K-2)×20.5000…………0(K-3)×21.0000…………1(K-4)所以(0.8125)10=(0.1101)2(3)二进制数与八进制数的相互转换二进制数转换成八进制数的方法可以概括为“三位并一位”;八进制数转换成二进制数的方法可以概括为“一位拆三位”;【例4-6】将(11101.1101)2转换成八进制数。解:011101.1101003564所以(11101.1101)2=(35.64)8(4)二进制数与十六进制数的相互转换二进制数转换成十六进制数的方法可以概括为“四位并一位”;十六进制数转换成二进制数的方法可以概括为“一位拆四位”;【例4-7】将(25.C4)16转换成二进制数。解:25.C40010010111000100所以(25.C4)16=(100101.110001)2表4.2列出了二、八、十、十六进制数之间的对应关系。4.3.2机器数一个数在计算机内部表示成的二进制形式称为机器数,原来的数称为这个机器数的真值。机器数具有下列特点:(1)由于计算机设备的限制,机器数有固定的位数,它所表示的数受到计算机固有位数的限制,所以机器数具有一定的范围,超过这个范围便会发生溢出。(2)机器数将其真值的符号数字化。计算机中使用具有两个不同状态的电子器件,它们只能分别表示数字符号“0”和“1”。所以,数的正负号也只能通过0和1来加以区分。通常,用机器数中规定的符号位(一般是一个数的最高位)取0或1分别表示其值的正或负。(3)机器数中依靠格式上的约定表示小数点的位置。1)数据的符号表示问题机器数在参与运算时,若将符号位和数值一起进行运算,有时会产生错误的结果。例如,―6+4的结果应为―2,但按上述方法,则运算如下:10000110―6的机器数+000001004的机器数10001010结果为―10常用的几种机器数符号表示方法:原码、补码、反码、移码。(1)原码表示法原码表示的规则是:最左边一位表示数的符号,且以“0”表示正号,“1”表示负号;其余各位表示数的大小,即其绝对值。例如,假设机器数的位数是8,则[+73]原=01001001[–73]原=11001001[+127]原=01111111[–127]原=11111111对于真值0而言,可以被认为是+0,也可被认为是–0。[+0]=00000000,[–0]=10000000,所以数0的原码不唯一,有“正零”和“负零”之分。原码表示简单易懂,与真值转换方便,用于乘除运算十分方便。(2)补码表示法模的概念:“模”是指一个计量系统的计数范围。例如:时钟的模为12,计量范围是0~11。若时钟指向11,则再过1小时,时钟将指向0(即12)。n位计算机的模为2n,计量范围是0~2n-1。设n=4,模为24=16,计量范围是0~15(二进制表示为0000~1111)。若当前值是1111,则再加1,计数值就变为0000,而在最高位上溢出了一个“1”。任何有模的计量器,均可化减法为加法运算。只需把减数用相应的补码表示就可将减法运算化为加法运算。对于整数而言,若计算机字长为n位,则X0≤X2n-1[X]补=2n+X–2n-1≤X0时钟为例,设当前时钟指向11点,而准确时间应为7点,调整时间的方法有两种。一种方法是将时针倒拨4小时,即11–4=7;另一种方法是将时针顺拨8小时,即11+8=19=12+7=7。由此可见,在以12为模的系统中加8和减4的效果是一样的,即(–4)=(+8)(Mod12)。因此可以说,当以12为模时,–4的补码为12+(–4),即为+8。例如,n=8时[+73]补=01001001[–73]补=100000000-01001001=10110111[–1]补=100000000-00000001=11111111[–127]补=100000000-01111111=10000001用补码表示整数时可表示的数值范围仍以n=8为例,当X0时,最大值为[X]补=01111111=+127;当X0时,绝对值最大为[X]补=10000000=―27=―128。所以8位整数的表示范围是―128~+127。数0的补码表示是唯一的,即[0]补=[+0]补=[―0]补=00000000真值与补码简便转换方法1.对正数而言,补码与真值相同;2.对负数而言,符号位取1,其它各位取反、末位加1;【例4-8】求―36的补码。解:第1步:将―36表示成二进制数–00100100第2步:符号位取1,其余各位取反得11011011第3步:末位加1,结果为11011100所以[–36]补=11011100【例4-9】求[11110110]补的真值。解:第1步:除符号位外,各位取反得10001001第2步:末位加1,结果为10001010所以真值为(–0001010)2,即(–10)10根据补码定义,可以证明[X]补+[Y]补=[X+Y]补[X]补―[Y]补=[X―Y]补这表明,两个补码加减的结果也是补码,而且在运算时,符号位可同数值部分作为一个整体参加运算,如果符号位有进位,则舍去进位。【例4-10】设a=4,b=6,请用补码求和方法计算(a―b)。解:因为[a]补=00000100,[―b]补=11111010且[a―b]补=[a]补―[b]补==[a]补+[―b]补=00000100+11111010=11111110所以(a―b)=―2采用了补码表示法后,加法和减法统一成了加法运算,可以大大简化计算机运算部件的电路设计,所以现代计算机中都使用补码形式的机器数。前已述及,利用“求反加1”的方法可以得到负数的补码。如在上述方法中,只求反而不加1,就得到另一种机器数的表示,这就是反码表示法。反码定义为:X0≤X2(n-1)[X]反=(2n―1)+X―2(n-1)X≤0反码表示很少直接用于计算中。反码主要被用作真值求补码的一个过渡手段。(3)反码表示法(4)移码表示法对于n位整数,移码定义为[X]移=2(n-1)+X―2(n-1)≤X2(n-1)即无论为正还是为负,都在符号位加“1”或加2(n-1)。例如,n=8时[36]移=27+00100100=10100100[―36]移=27+11011100=01011100在移码表示中,真值“0”的表示是唯一的:[0]移=100…00移码在计算机中主要用于表示浮点数中的阶,所以通常只使用整数。原码、补码机、反码的共同特征:如果真值为正,则这三种机器表示的最高位都为0;如果真值为负,则这三种机器表示的最高位都为1。移码表示时却正相反:如果真值为正,则移码机器表示的最高位为1;如果真值为负,则移码机器表示的最高位为0。2)数据的小数点表示问题有两种表示方法:定点表示法和浮点表示法。(1)定点表示法是约定计算机中所有数据的小数点位置是固定不变的。该位置在设计计算机时已被隐含地规定,因此勿需再用任何状态来明显表示小数点。这样的数被称为定点数,只能处理定点数的计算机称为“定点机”。数符.尾数.小数点位置(隐含约定)(2)浮点表示法浮点数:即数中小数点的位置不是固定不变的,而是可浮动的。在科学计算中,可能同时涉及值很大和很小的数。这时,要求计算机所表示的数,其小数点位置是可变的。①浮点数的表示形式任何一个二进制数可表示成:(N)2=±2r×Ni×2-I=±2r×MM(尾数)表示了数的有效数字;r被称为阶(或阶码),表示数的因子中基数的幂次,即为小数点的位置。mi1任何一个浮点数均由尾数和阶构成。尾数可正可负,同样阶也可正可负,所以浮点数的格式为:数符1bit阶7bit阶符1bit尾数23bit阶符1bit阶7bit数符1bit尾数23bit一般规定,尾数为二进制定点纯小数,约定小数点在尾数最高位的左边;阶为二进制定点整数,其隐含基数为2,也可取4、8或16等。(2)MS标准:(1)IEEE标准:(多用于UNIX系统中)因此,可表示的最大数约为
本文标题:2 计算机中数据的表示及其运算
链接地址:https://www.777doc.com/doc-3269237 .html