第一章(续) 计算机中的数据信息_第1页
第一章(续) 计算机中的数据信息_第2页
第一章(续) 计算机中的数据信息_第3页
第一章(续) 计算机中的数据信息_第4页
第一章(续) 计算机中的数据信息_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章(续)计算机中的数据表示

1、数和数制3、二进制数的小数表示-定点数和浮点数4、BCD码及ASCⅡ码2、带符号数的机器表示法一﹑数的位置表示法及各种进位制数设基数为X,则一个数N可展开为:

N=an-1Xn-1+an-2Xn-2+….+a0X0+a-1X-1+…+a-(m-1)X-(m-1)+a-mX-m

1、数和数制客观事物存在着多少和大小的差别,数是客观事物的量在人们头脑中的反映。一个数可以用不同的计数制度来表示它的大小,虽然形式不同,但数的“量”则是相等的。用一组数字表示数时,如果每个数字表示的量不但取决于数字本身,而且取决于它所在的位置,就称为位置表示法。

基数X的取值不同,便得到不同进位制数的表达式。

当X=10时,得十进制数的表达式为:N10=∑ai10i

其特点是:系数ai只能在0─9这十个数字中取值;每个数位上的权是10的某次幂;在加减运算中,采用“逢十进一”和“借一当十”的规则。

当X=2时,得二进制数,其表达式为:N2=∑ai2i

i=-mn-1其特点是:系数ai只能在0和1这两个数字中取值;每个数位上的权是2的某次幂;在加减法运算中,采用“逢二进一”和“借一当二”的规则。n-1i=-m同理,当X=16时,得十六进制数的表达式为:N16=∑ai16i其特点是:系数ai只能在0-15这16个数字中取值(其中0-9这10个数字借用十进制总的数码,10-15这6个数可用两种方法表示,即0,1,2,3,4,5或A,B,C,D,E,F);每个数位上的权是16的某个幂;在加减法运算中,采用“逢十六进一“和“借一当十六”的规则。

表2-1列出了四种进位制中数的表示法,用后缀表示采用的进位制。B----二进制Q-----八进制H----十六进制十进制数可以用D后缀,也可以什么也不写n-1i=-m表2-1十进制、二进制、八进制、十六进制数码对照表二、各种进位制数的换算方法1.

任意进位制数与十进制数之间的相互转换(1)

任意进位制数转换成十进制数最简单的方法是根据任意进位制数的表达式按权展开后相加即可。例如:(1011.110B)=1×23+0×22+1×21+1×20+1×2-1+1×2-2+0×2-3=11.75732.14Q=7×82+3×81+2×80+1×8-1+4×8-2=474.18753ABF.E6H=3×163+10×162+11×161+15×160

+14×16-1+6×16-2=15039.8984375(2)

十进制整数转换为任意进位制整数常用的方法是除基取余法。设N是待转换的十进制整数,X是某一进位制的基数,则将N转换为X进位制数的方法如下:XNX商1余1低位X商2余2┆X商m余m0高位

∴NX=

余m余m-1…余2余1(3)

十进制小数转换为任意进制小数常用的方法为乘基取整法。设N是待转换的十进制小数,X是某一进位制的基数,则将N转换为X进位制小数方法如下:

N×X

高位整1.小数1×X

整2.小数2×X┇

整m-1.小数m-1×X

低位整m.00┅0∴NX=0.整1整2…整

m例:0·125=0·001B0·625=0·101B0·1=0·0001100110011…B有时不能用有限位数的二进制小数表示十进制小数2.十六进制数与二进制之间的转换由于16=24,所以一位十六进制数对应于四位二进制数,二进制与十六进制间的转换十分简便。①

将十六进制数转换成二进制数只要把每一位十六进制数用相应的四位二进制数替换即可。例如:FA8.5CH=111110101000.010111B11111010100001011100例:1D·67H=11101·01100111B0001110101100111

②将二进制数转换成十六进制数转换方法也与八进制相似,即以小数点为界,向左(整数部分)、右(小数部分)每四位一组,不足四位者,在前面(整数部分)或后面(小数部分)补零,然后将每一组用对应的十六进制数替换即可。例如:100011101001.1100011B()H1000,1110,1001.1100,0110B=8E9.C6H

补零11011.1B()H0001,1011·1000B=1B·8H三、二进制数的权值及运算方法

1.

二进制数的权值计算机内部采用二进制,但人们习惯于十进制,因此在应用计算机解决实际问题时,常常要进行二进制与十进制的相互转换。应用本章前面介绍的方法进行转换时,有时显得繁琐。若能熟记二进制数各位上用十进制表示的位权,如表2-2所示,将能大为简化转换的步骤。例如,要将65转换成二进制数,若用连除法,需要很多步,但我们查看权值表可知26=64、25=32…..而65=64+1,这个等式说明,转换后的二进制数第0位与第6位为1,其余全为0,因而我们可很轻松地计算出65=1000001B。注意:从低位到高位二进制数的权值为20、21、22┅

表2-2二进制数的“权值”表

例如:115=64+32+16+2+1,则115=1110011B。↑↑↑↑↑2625242120

反过来,计算二进制数对应的十进制值,熟记权值就更加重要。2.二进制数的运算方法二进制计数制除物理实现简便外,运算方法也比十进制计数制简单。例如:1011001B=26+24+23+20=64+16+8+1=89(1)二进制加法一位二进制数的加法规则为:0+0=00+1=1+0=11+1=0进位11+1+1=1进位1如1101B+0111B

被加数1101

加数0111

进位+)111————10100(2)二进制减法一位二进制减法的规则为:0-0=01-1=01-0=00-1=1有借位0-1-1=0有借位故二个二进制数相减,如1010B-0101B,过程如下:1010B-0101B

110101B(3)

二进制乘法一位二进制数的乘法规则为:

0×0=01×0=00×1=01×1=11110B×0110B可进行如下:

被乘数1110

乘数×0110——————

中间结果0000

中间结果1110

中间结果1110

中间结果+)0000———————

积1010100

被乘数1110

乘数×0110

初始部分积0000

乘数最低位为0,加全0+0000———————————————

部分积0000

部分积右移一位00000乘数次低位为1,加被乘数+1110—————————————

部分积11100

部分积右移一位011100乘数第三低位为1,加被乘数+1110——————————————

部分积1010100

部分积右移一位1010100乘数最高位为0,加全0+0000

部分积1010100

部分积右移一位得到乘积01010100(3)

二进制除法二进制除法运算与十进制除法运算类似,对整数除法可先从被除数的最高位开始,将被除数(或中间余数)与除数相比较,若被除数(或中间余数)大于除数,则被除数(或中间余数)减去除数,商1,并将相减之后得到的中间余数左移一位(中间余数的最低位用下一位被除数补充)作为下一次的中间余数。若被除数(或中间余数)小于除数,则不作减法,商0,并将本次的中间余数左移一位(中间余数的最低位用下一位被除数补充)得下一位的中间余数。如此逐次地进行比较、相减和移位,就可得到所要求的各位商数和最终的余数。

例:1101.001÷101=?10.1011011101.0011010110001101010100001011010除法可归结为相减和移位四.二进制数的特点1.优点:2.缺点:书写式长、易错3.二进制数的特性①移位特性:小数点右移一位,数值×2

小数点左移一位,数值÷2例:0101.005010.1002.5小数点左移一位01010.010小数点右移一位①易实现、易区别②运算简单③节约设备:④有良好的罗辑性:0,1真假R=2.71828,设备最省3.二进制数的特性②奇偶特性:最低位为0偶数

最低位为1奇数例:01001100B10000001B偶数奇数③等位特性:1位十进制数≈3.32位二进制数

若精度10-5n=5×3.32≈16.6,16位机

精度10-10n=10×3.32≈33,32位机2、

带符号数的机器表示法

一、机器数与真值二、机器数的原码表示法

三、补码和反码

四.求补码的方法五.补码的运算六.溢出判别七.算术移位八.各种码制的比较和小结一、机器数与真值

真值:带“+”或“-”符号的数,+100111B,-0110011B机器数:符号已经数码化了的数如果用“0”表示正号,用“1”表示负号,上述各数则可表示为:0100111B,10110011B,统称为机器数符号位和数值位都成了数码后,计算机可以识别了,但在数的运算过程中符号位能否与数值位一起参加运算呢?这是一个十分重要的问题。为了妥善地解决这个问题,产生了把符号位与数值位一起编码的各种方法。二、机器数的原码表示法原码是最简单的机器数。1、原码的定义:用“0”表示正号,“1“表示负号,数值部分就是原来的数值,故称为原码。例如:设计算机的字长为8,已知X=+1011101B,Y=-111101B,则:[X]原=01011101B,[Y]原=10111101B原码和真值的关系可归纳为右式:[X]原=X当X≥+02n-1-X当X≤-0上面的式子说明了两个问题:①正数的原码与真值相同[+0]原=0000┄00[-0]原=1000┄00

(n个二进制位)(n个二进制位)2、原码表示法整数的数值范围设计算机字长n=8,x为用原码表示的整数,则当x为正整数时:00000000B≤X≤01111111B+0≤X≤127即:+0≤x≤28-1-1推广至n位字长:+0≤x≤2n-1-1…①②在原码表示法中零有正零和负零之分。若设计算机的字长为8,则当x为负整数时:11111111B≤x≤10000000B-127≤x≤-0即:-(28-1-1)≤x≤-0推广至n位字长:-(2n-1)≤x≤-0……………②将①②两式合并得:-(2n-1-1)≤x≤2n-1-1当n=8时:-127≤x≤+127当n=16时:-32767≤x≤+32767当n=32时:-2147483647≤x≤+2147483647

3、

原码表示法的优缺点优点:直观,与真值转换容易缺点:符号位并不能直接参与运算1:00000001B-1:10000001B问题:设计算机字长n=8,十进制数1和-1的二进制原码数为?三、补码和反码1.

补码1)补码的概念

为了说明补码的概念,先从时钟拨准谈起。假若现在是北京时间3点整,而时钟却指着5点整,快2小时。123691245

对时钟而言,-2与+10等效同理,-5与+7等效时钟拨准有两种方法:1)倒拨2小时(减法),则相当于5-2=3;2)顺时针拨10个小时(加法)5+10=3(在钟面上12丢失)

无疑,对于十二进制(以12为模),如下等式总是成立的:

X+12=X(mod12)当X为负数时,如X=-5,在模12的意义下有-5+12=-5(mod12)7=-5(mod12)

这样,在模12的意义下,负数就可以转化为正数,而正负数相加也就可以转化为正数间的相加,如:4+(-5)=4+7(mod12)设K≥Y≥0,X≤0|X|<K,则

Y+X=Y+[K+X]=Y+[X]补(modK)即:[X]补=K+X这就是说,加上某负数X,可以用加上该负数对模K的补码[X]补来代替。一般可以把某X加上模数K定义为该数X对模K的补码[X]补,即2)计算机中补码的定义(设计算机的字长为n)计算机中数的补码是以2n为模,即:[x]补=2n+x。

下面讨论补码与真值的关系。

(1)当x为正数时:

设x=+xn-2xn-3…x1x0

则[x]补=2n+x=2n+xn-2xn-3…..x1x0=0xn-2xn-3…x1x0=[x]原=x∴正数的补码与原码相同,都等于真值。(2)当x为负数时:

设x=-xn-2xn-3…x1x0,则[x]补=2n+x=2n-1+(2n-1+x)∴负数的补码仍是一个负数,它是将其原码的符号位保持不变,而将其数值部分求补得到的。(3)当x为零时:x为正零时,[+0]补=2n+00…00=00…00x为负零时,[-0]补=2n-00…00=00…00∴补码中零只有一种表示法,无正负零之分

总结:当计算机字长为n时,二进制整数x的补码定义如下:

[X]补=2n+X-2n-1≤X<0

X0≤X<2n-1例如:若x1=+1010011B,x2=-1010011B,计算机字长n=8,则[x1]补=01010011B[x2]补=28+(-1010011B)=27+(27-1010011B)=10101101B3)补码表示法整数的数值范围

补码定义域的扩充原码:[+0]原=00000000B,[-0]原=10000000B

而补码中,零是唯一的,即00000000B,那么10000000B表示什么数值呢?在补码中,规定1000000B=[-128]补。例:(-128)+1=-12710000000B[-128]补

+00000001B[1]补

10000001B因此,用补码表示的整数,负数的定义域扩大了一个数码:n=8时,负数最小值为-128n=16时负数最小值为-32768n=32时负数最小值为-2147483648②

补码表示法整数的数值范围:设计算机字长n=8,x为用补码表示的整数,则x为正整数及零时:

00000000B≤x≤01111111B0≤x≤+1270≤x≤28-1-1扩展到n位字长:0≤x≤2n-1-1………………①x为负整数及零时:100000000B≤x≤00000000B-128≤x≤0-28-1≤x≤0扩展到n位字长:-2n-1≤x≤0………………②合并①②两式得:-2n-1≤x≤2n-1-1n=8时:-128≤x≤

+127n=16时:-32768≤x≤

+32767n=32时:-2147483648≤x≤+21474836474)补码的优缺点优点:其符号位可直接参与加减法运算,零唯一缺点:不如原码直观,与真值间的转换也不如原码简便上面我们讨论的补码,是以2n为模,又称为2补码。在二进制中,常把2补码简称为补码。

2.反码反码是以2n-1为模的一种补码,称为1补码1)

反码的定义设计算机字长为n,一个二进制整数的反码定义为

[X]反=X+0≤X<2n-1

2n-1+X-2n-1<X≤-0

因为2n-1=11…1,所以反码又称为1补码例:x1=+1100101B,[X]反=01100101Bx2=-1100101B,则[x]反=10011010B在反码中,有正、负零之分。X=+00000000B时,[x]反=[+0]反=00000000BX=-00000000B时,[x]反=[-0]反=11111111B2)反码的计算1补码之所以又称为反码,是由于它与原码的关系①

正数的反码与原码相同,都等于真值。②

负数的反码与原码关系为:原码的符号位不变,数值位按位取反后的值例:设x=+0011101B,y=-0011101B,n=8,则[[x]反=[x]原=00011101B[y]原=10011101B[y]反=11100010B

3)反码表示法整数的数值范围

设计算机字长n=8,x为用反码表示的整数,则当x为正整数时:

取反00000000≤x≤01111111B+0≤x≤127+0≤x≤28-1-1扩展到n位字长:+0≤x≤2n-1-1…………①当x为负整数时:10000000B≤x≤11111111B-127≤x≤-0-(28-1-1)≤x≤-0扩展到n位字长:-(2n-1-1)≤x≤-0…………②合并①②式可得:-(2n-1-1)≤x≤2n-1-1n=8时-127≤x≤127n=16时-32767≤x≤32767反码中,零有2种表示:[+0]反=00000000B[-0]反=11111111B4)

反码的优缺点反码的优点是符号位可参加运算。缺点是不直观,零不唯一。四.求补码的方法 由上面讨论知道,正数的补码等于原码,也等于真值,只有负数才有求补的问题。这里介绍三种求补码的方法。1.

根据定义求如X=-1010111B,n=8则[X]补=28+(-1010111B)=100000000B-1010111B=10101001B(mod2n)2.

利用反码求因为[X]补=2n+X,[X]反=2n-1+X所以[X]补=[X]反+1即一个负数X的补码等于其反码在最低位加1。如X=-1010111B则[X]原=11010111B[X]反=10101000B[X]补=[X]反+1=10101000B+1=10101001B3.简便的直接求补法根据原码:从最低位起,到出现第一个1以前(包括第一个1)原码中的数字不变,以后逐位取反,但符号位不变。例2.1试用直接求补法求X1=-1010111B及X2=-1110000B的补码[X1]补及[X2]补。(n=8)解:X1=-1010111B,[X1]原=11010111B↑取反↑由原码求补码:符号位不变第一个1不变∴[X1]补=10101001B

X2=-1110000B,[X2]原=11110000B↑取反↑由原码求补码:符号位不变第一个1及其右边各位不变∴[X2]补=10010000B五.补码的运算1.

带符号数的运算(1)

补码的加法:两个带符号的补码数X及Y(|X|及|Y|都小于2n-1,n为二进制数的位数)相加时有下述3种情况:Ⅰ·X≥0,Y≥0。若|X+Y|<2n-1,则根据补码的定义,可得下式:[X]补+[Y]补=[X+Y]补=X+Y即两个正数的补码相加,所得的结果也为和的补码形式(它与原码相同)。Ⅱ.参与运算的两个补码数不同符号,如设X≥0,Y<0:a.

若2n-1>X+Y≥0,则根据补码的定义有:[X]补=X[Y]补=2n+Y

∴[X]补+[Y]补=X+2n+Y=2n+(X+Y)=[X+Y]补

mod2n

b.若-2n-1<X+Y<0,则根据补码定义有[X]补=X[Y]补=2n+Y[X]补+[Y]补=X+2n+Y=2n-1+(2n-1+X+Y)=[X+Y]补↑符号位数值部分求补因而当两个符号不同的补码数相加时,结果也为补码形式。Ⅲ.X<0、Y<0,若2n-1>|x+y|,则根据补码的定义有

[X]补+[Y]补=2n+2n+(X+Y)=2n+(X+Y)=[X+Y]补

mod2n即两个补码形式的负数相加,所得之和也为负数的补码形式。

[X]补+[Y]补=[X+Y]补例2.2用补码计算(+25)+(-20),(-25)+(+20),(-25)+(-18)解:(+25)+(-20)=+0000101B

00011001[+25]补

+11101100[-20]补

——————

100000101[+5]补↑符号位进位丢掉(-25)+(+20)=-0000101B11100111[-25]补

00010100[+20]补

——————11111011[-5]补对[-5]补再求补,则还原为[-5]原=10000101B(-25)+(-18)=-0101011B11100111[-25]补

11101110[-18]补————————

111010101[-43]补↑符号位进位丢掉[[-43]补]补=10101011B结论:二个数的补码相加和仍为补码形式,若其最高位(指有效位)为0,说明和为正,这时的和既为原码,也为真值;若最高位为1,说明和为负,这时的和为补码。若想得到真值,需对其补码再求补(方法不变)得到和的原码,从原码就很容易得到真值了。步骤:1)先分别求二个数的补码2)将两个补码数相加,得到和的补码3)对和进行判断若其最高位(指有效位)为0,说明和为正,这时的和既为原码,也为真值;若最高位为1,说明和为负,这时的和为补码。(2)补码的减法

两个带符号数相减,有如下基本公式:X-Y=X+(-Y)∴(X-Y)补=[X+(-Y)]补=[X]补+[-Y]补这里的关键是求[-Y]补。下面介绍两种方法。Ⅰ.把(-Y)看作一个整体,求其补码,方法与前述相同。例如,计算20-19=?20-19=20+(-19)=+0000001B00010100[20]补

+11101101[-19]补————————100000001Ⅱ.先求[Y]补,方法如前述,再根据[Y]补求[-Y]补。我们把根据[Y]补求[-Y]补的过程称为变补。即:[[Y]

补]变补=[-Y]补根据[Y]补求变补的简便方法是:从最低位起,到出现第一个1以前(包括第一个1),[Y]补中的数字不变,其余各位(包括符号位)按位取反。例如用此法计算20-19=?[19]补=00010011B

[-19]补=11101101B,将其与第一种方法比较,结果相同。例:计算①50-26,②(-100)-(-70)解:①50-26=00011000B(此题应用第二种方法)[26]补=00011010B[-26]补=[[26]补]变补=11100110B所以00110010[50]补+11100110[-26]补————————

100011000[24]补↑符号位进位丢掉②(-100)-(-70)(此题应用第一种方法)=(-100)+(+70)=-0011110B10011100[-100]补

+01000110[+70]补————————11100010[-30]补

10011110B=[(-100)-(-70)]原综上所述,对于补码的加减法运算可用下边一般公式表示[X]补+[±Y]补=[X±Y]补(|X|,|Y|及|X+Y||都小于2n-1)这就是说,计算机只要一个加法器就可实现补码的加减法运算。

求补注意:教材中的求补计算就是我们这里的变补计算!两个不带符号数进行加法,只要和绝对值不超过整个字长,就不溢出,则和也一定为正数的补码形式,它等于和的原码;两个不带符号数相减,可用减数变补与被减数相加来求得。

(1)若X≥Y,则两者原码相减时无借位,差值为正,X+[Y]变补的和必大于2n,最高位有进位,得到的和为正数[X-Y]的补码。它等于[X-Y]原(2)若X<Y,则两者原码相减时有借位,差值为负,但X+[Y]变补的和必小于2n,最高位无进位,得到的和为负数[X-Y]的补码。2.不带符号数的运算[X]补+[±Y]补=[X±Y]补(|X|,|Y|及|X+Y||都小于2n)在计算机中,对两个不带符号数进行补码减法运算时,要判断结果是正数还是负数,必须看减数变补与补减数相加时有无进位。有进位,表示两数原码相减无借位,结果为正;无进位,表示两数原码相减有借位,结果为负。例2.4用补码进行下列运算:1)129-792)79-129解:1)X=129Y=79则X=10000001BY=01001111B[-Y]补=[Y]变补=10110001B10000001BX+10110001B[-Y]补

——————100110010B[X-Y]补

有进无借结果为正[X-Y]原=[X-Y]补=00110010B=502)X=79Y=129则X=01001111BY=10000001B[-Y]补=[Y]变补=01111111B01001111BX+011111111B[-Y]补

————————011001110B[X-Y]补

无进有借结果为负故对[X-Y]补,再求补有X-Y=-00110010B故X-Y=-50结论:作加法时,直接将两数相加即可;作减法时,是用减数变补与被减数相加来实现。结果的正负判别方法:(1)若参加运算的两数为带符号的补码形式,则结果的正负以最高位(符号位)来判别,最高位为0是正数,最高位为1是负数(以运算结果不溢出为条件);(2)若参加运算的两数为不带符号的数,则加法结果必为正数(以不溢出为条件),没有符号位。而减法结果的正负都应以最高位有无进位来判别,减数变补与被减数相加时最高位有进位,表示两数原码相减时无借位结果为正,否则结果为负数六.溢出判别任何一种运算都不允许发生溢出,除非是只利用溢出作为判别而不使用所得的结果。所以当溢出产生时,应使计算机停机或输入检查程序找出溢出原因,然后作相应处理。1)不带符号数的溢出减法没有溢出问题,只有加法才有溢出问题。溢出的判别方法:CF=1,有溢出CF=0,无溢出2)带符号数的溢出若运算结果的绝对值超过运算装置的容量,数值部分便会发生溢出,占据符号位的位置,从而引起计算出错。微型机中常用的溢出判别法是双高位判别法。为讲清双高位判别法,首先引进两个附加的符号,即Cs:它表征最高位(符号位)的进位情况,如有进位,Cs=1,否则,Cs=0。Cp:它表征数值部分最高位的进位情况,如有进位Cp=1,否则,Cp=0。在微型机中,常用“异或”线路来判别有无溢出发生,即若

Cs⊕Cp=1表示有溢出产生,否则便无溢出。例2.5(+110)+(+92)01101110[+110]补

+01011100[+92]补

———————————11001010Cs=0Cp=1正溢出,结果出错

“01”称正溢出例2.6(-110)-(+92)10010010B[-110]补

+)10100100B[-92]补———————————————————

100110110B→+54Cs=1Cp=0负溢出,结果出错“10”称负溢出例2.7两个正数相加,和的绝对值小于2n-1时,Cs=0,Cp=0,无溢出发生。00101101B+45+)00101101B+4501011010B→+90Cs=0Cp=0无溢出例2.8(-5)+(-5)11111011B+11111011B

111110110BCs=1Cp=1无溢出例2.9一个正数和一个负数相加,和肯定不溢出。此时,若和为正数,则Cs=1,Cp=1;若和为负数,则Cs=0,Cp=0。10001011B[-117]补

11110100B[-12]补+)01111001B+121+)00001001B+9————————————————————————————

100000100B→+411111101B→-3Cs=1,Cp=1无溢出Cs=0,Cp=0无溢出

结论:

Cs⊕Cp=1

,有溢出,否则无溢出!七.算术移位

二进制数在寄存器或存储器中进行算术移位时,每左移一位,它表示的量的绝对值应增大1倍(如果没有溢出);每右移一位,它表示的量的绝对值应减少一半。为此,在各种情况下对移出的空位应补入不同的数。1)

对于正数,左移或右移时空位都补以0。

例如:一个正的八位二进制数为00001110+14

左移一位后为←000011100←补0+28

右移一位后为补0→000001110→+72

补码法表示的负数,左移时最低位补以0,右移时最高位补以1。例如:一个负的八位二进制补码数为11110010[-14]补

左移一位后为←111100100←补0[-28]补

右移一位后为补1→11111001

0→[-7]补3)反码法表示的负数,左移和右移时,最高位和最低位均补1。例如:一个八位二进制数为11110001[-14]反

左移一位后为←111100011←补1[-28]反

右移一位后为补1→111110000→[-7]反八.各种码制的比较和小结 从数的符号如何表示开始,逐步地引出原码、反码、补码和移码,它们之间既有共同之处,又各自具有不同的性质。现归纳如下。1)

原码、反码、补码和移码均是计算机所能识别的数,称机器数。机器数是符号数码化了的数,要与真值相区别。2)

正数的原码、反码和补码是相同的,并且与真值相同。重点理解负数,这三种码制的负数各有不同的定义。3)

原码、补码和反码的最高位都表示符号位,用“0”表示“+”,用“1”表示“-”。但移码却正好相反,用“0”表示“-”,用“1”表示“+”。4)

零在补码和移码中具有唯一性,而在原码及反码中却有两种不同的表示。5)

补码和反码的符号位可以和数值位一起参加运算,而原码则不行,符号位与数值部分必须分开处理。3、二进制数的小数点表示-定点数和浮点数1、定点数在计算机中用隐含规定小数点位置的方法,确定小数点。

根据小数点的位置是否固定,可分为定点表示(定点数)和浮点表示(浮点数)。计算机中数的小数点位置固定不变,称为定点数。(1)定点整数将小数点固定在数的最低位(最右边)的数称为定点整数。dndn-1dn-2dn-3…d0符号位小数位数值部分对于n+1位(包括一位符号位)定点整数,在计算机中的数据格式如下:(2)定点小数将小数点固定在数的符号位之后,最高数值位之前的数称为定点小数。d0d-1d-2d-3…d-m-1d-m符号位小数位数值部分对于m+1位(最高一位符号位)定点小数,在计算机中的数据格式如下:m+1位定点小数所能表示的范围亦码制不同而不同。对于原码和反码其数的范围是:(1-2-m)~-(1-2-m)。对于补码其数的范围是:(1-2-m)~-1。当定点机一经设计完成,其小数点的位置就固定不变了,运算中应该注意参加运算的数和运算结果都应该限定在定点数所能表示的范围内,否则要产生“溢出”。2、浮点数

要处理的数既有小数,也有整数部分,采用定点数表示就会很困难。应该采用浮点数表示。计算机中数的小数点位置不固定,称为浮点数。浮点数格式:浮点数分为阶码和尾数两部分。JEm-1Em-2…E0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论