第2章 计算机中信息的表示方法_第1页
第2章 计算机中信息的表示方法_第2页
第2章 计算机中信息的表示方法_第3页
第2章 计算机中信息的表示方法_第4页
第2章 计算机中信息的表示方法_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

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

文档简介

第二章

计算机中信息的表示方法

主要内容数制及其转换数据和文字的表示方法掌握定点数的加减、乘除运算掌握浮点数加减运算了解常用字符的编码第一节数值及其编码无符号数的表示及运算

计算机中的数据都是采用二进制形式存储和处理的,二进制数只有两个数字0和1,因此在物理上容易实现,这与我们日常生活中所使用的十进制数是不同的。

一、计算机中常用的进制数

人们最常用的数是十进制数,计算机中采用的是二进制数,同时有的时候为了简化二进制数据的书写,也采用八进制和十六进制表示方法。下面将分别介绍这几种常用的进制。

十进制数

十进制数是大家熟悉的,用0,1,2,…,8,9十个不同的符号来表示数值,它采用的是“逢十进一,借一当十”的原则。十进制表示数值方法如下:

ND=±Ki*10i

其中:Ki=01…..9例:十进制数132.5表示如下:

(132.5)D=1*102+3*101+2*100+5*10-1

∑i=-mn·二进制数基数为10的记数制叫十进制;基数为2的记数制叫做二进制。二进制数的计算规则是“逢二进一,借一当二”。

二进制表示数值方法如下:

NB=±Ki*2i其中:Ki

=0或1ni=-m例:二进制数1011.1表示如下:(1011.1)B=1*23+0*22+1*21+1*20

+1*2-13、八进制表示法八进制数是基数为八的计数制。八进制数主要采用0,1,2,…,7这八个阿拉伯数字。八进制数的运算规则为“逢八进一,借一当八”。八进制表示数值方法如下:

NO=±Ki*8i其中:Ki

=0、1、2、3、4、5、6、7ni=-m例:(467.6)O=4*82

+6*81

+7*80+6*8-14、十六进制表示法基数为16,用0-9、A-F十五个字符来数值,逢十六进一。各位的权值为16i。二进制表示数值方法如下:

NH=±Ki*16i其中:Ki

=0-9、A-Fni=-m例:(56D.3)H=5*162

+6*161+13*160+3*16-1二、进制间的转换(分为三种)1、其它进制数和十进制数之间的转换(1)其它进制数转换为十进制数方法:按位权进行展开相加即可。例:(11101.101)B=1×24+1×23+1×22+0×21+1×20+1×2-1+0×2-2+1×2-3=16+8+4+0+1+0.5+0.25+0.125=29.875

(237.6)B=2×82+3×81+7×80+6×8-1=128+24+7+0.75=159.75

(56D.3)H=5*162

+6*161+13*160+3*16-1

=1280+96+13+0.19375=1389.193752.十进制数转换为其它进制数方法:A、将整数部分和小数部分分别进行转换,然后再把转换结果进行相加。B、整数转换采用除2取余法:用2不断地去除要转换的数,直到商为0。再将每一步所得的余数,按逆序排列,便可得转换结果。C、小数转换采用乘2取整法:每次用2与小数部分相乘,取乘积的整数部分,再取其小数部分乘2直到小部分为0。将所取整数顺序放在小数点后即为转换结果。例:将(136)D转换为二进制数。

2136余数(结果)低位

268----------0234----------0217----------028----------124----------022----------021----------00----------1高位转换结果:(136)D=(10001000)B例:将(0.625)D转换为二进制数。0.625*2

1.25*2

0.5*2

1.0

取整:高位低位转换结果:(0.625)D=(0.101)B所以(136.625)D=(10001000.101)B例:将(136)D转换为八进制数。

8136余数(结果)低位

817----------082----------180----------2高位(136)D=(210)O

将(0.625)D转换为二进制数。

0.325*8

2.6*84.8*8

6.4*83.2

取整:高位低位(0.325)D=(0.2463)O所以(136.325)D=(210.2463)O若乘积的小数部分永不为0,则根据精度的要求截取一定的位数即可。3.二进制数和八进制数、十六进制数间的转换(1)二进制数到八进制数、十六进制数的转换A、二进制数到八进制数转换采用“三位化一位”的方法。从小数点开始向两边分别进行每三位分一组,向左不足三位的,从左边补0;向右不足三位的,从右边补0。B、二进制数到十六进制数的转换采用“四位化一位”的方法。从小数点开始向两边分别进行每四位分一组,向左不足四位的,从左边补0;向右不足四位的,从右边补0。例:将(1000110.01)B转换为八进制数和十六进制数。

1

000110.01001

000110.010

(106.2)O二进制数到十六进制数的转换:(1000110.01)B=1000110.0101000110.0100(46.4)H(2)、八进制、十六进制数到二进制数的转换方法:采用“一位化三位(四位)”的方法。按顺序写出每位八进制(十六进制)数对应的二进制数,所得结果即为相应的二进制数。例:将(352.6)o转换为二进制数。

352.6011101010110=(11101010.11)B

0011010100100110=(1101010010.011)H由于二进制数书写冗长易错,,因此在计算机中一般用十六进制来表示数,比较简洁方便。三、无符号二进制数的运算二进制数的算术运算二进制数的逻辑运算算术运算规则:加法运算:0+0=00+1=11+0=11+1=10(逢二进一)减法运算:0-0=010-1=1(借位)1-0=11-1=0乘法运算:0*0=00*1=01*0=01*1=1除法运算0/1=01/1=1逻辑运算规则

“或”运算:

0+0=00+1=11+0=11+1=1“与”运算:

0*0=00*1=01*0=01*1=1“非”运算

0=11=0

“异或”运算

00=0

0

1=11

0=111=0

二进制编码的十进制数(BCD码)

BCD码是一种用4位二进制数字来表示一位十进制数字的编码,也成为二进制编码表示的十进制数(BinaryCodeDecimal),简称BCD码。表2-2示出了十进制数0-15的BCD码。

BCD码有两种格式:(1)压缩BCD码格式(PackedBCDFormat)

用4个二进制位表示一个十进制位,就是用0000B-1001B来表示十进制数0-9。例如:十进制数4256的压缩BCD码表示为:0100001001010110B(2)非压缩BCD码格式(UnpackedBCDFormat)用8个二进制位表示一个十进制位,其中,高四位无意义,我们一般用xxxx表示,低四位和压缩BCD码相同。例如:十进制数4256的非压缩BCD码表示为:

xxxx0100xxxx0010xxxx0101xxxx0110B

第二节计算机中常用的字符编码1、ASCII码

计算机处理信息时的符号、字母等字符,也必须采用二进制编码的形式,编码的形式有多种,常用的编码方式为美国标准信息交换(AmericanStandardCardforInformationInterchange,ASCII码)。

ASCII用8位二进制对字符编码,共可表示256种字符。2.汉字编码(国际码)汉字的输入编码汉字内码汉字字模码习题1.将下列各十进制数转换成为二进制数(最多保留6位小数)(1)221(2)12.375(3)123.25(4)1232.以十六进制形式,给出下列十进制数对应的8位二进制补码表示。(1)46(2)-46(3)-128(4)1273.给出下列十进制数对应的压缩和非压缩BCD码形式。(1)58(2)1624以十六进制形式,给出下列十进制数对应的8位二进制补码表示。(1)46(2)-46(3)-128(4)1275.标准的ASCII码由()位二进制代码组成。

A.4 B.7C.8D.9真值为-1000000B的补码为______。7.

二进制数10010110.10B的十进制数值可表示为()

A.96.8B.150.5C.96.5D.160.5

8.键盘输入20时,实际运行的ASCII码是(

)。

A.42H40H

B.62H60H

C.32H30H

D.52H50H

(1F2)16=(_____________)10。计算机表示一个二进制数的最小单位是_______。数字“3”带偶校验的ASCII代码为()。

A.33H B.34HC.B3HD.B4H16位二进制所表示的无符号整数,其相应的十进制数范围是()

A.0~65536B.1~65536C.1~65535D.0~6553516.二进制数10010110.10B的十进制数值可表示为()

A.96.8B.150.5C.96.5D.160.5

带符号数的表示及运算带符号数的表示真值与补码之间的转换补码的运算带符号数的表示机器数:数值数据在计算机中的编码。机器数的真值:机器数所代表的实际数值。常用的编码方案:原码、反码、补码。1、原码表示码原码:用最高位表示符号,其中:0----正、1----负,其它位表示数值的绝对值。例:求X1=0.1011,X2=-0.1011的原码表示。(8位)

[X1]原

=0.1011000[X2]原=1.1011000小数点位置例:求X1=1011,X2=-1011的原码。(8位)

[X1]原=00001011[X2]原=10001011小数点位置0的表示形式(8位)[+0]原=00000000[-0]原=10000000特点A、原码与真值的对应关系简单。B、0的编码不唯一,处理运算不方便。2、反码表示法

正数:反码与原码相同。负数:最高一位表示符号,数值位取反。

[+0]反=00000000[-0]反=1111111[+1100111]反=01100111[-1100111]反=100110003、

补码表示法正数的补码和原码相同。负数的补码=反码末位+1。例:求0.1011和-0.1011的补码。(8位)[0.1011]真=[0.1011]原=[0.1011000]补[-0.1011]真=[1.1011000]原=[1.0100111]反=[1.0101000]补[0]补=[+0]补=[-0]补=00000000(唯一)真值与补码之间的转换(1)真值转换为补码例1:设x=+127D,求[x]补解:+127D=01111111B

故[x]补=[+127]补=[01111111]补例2:设x=-127D,求[x]补解:-127D=11111111B

故[x]补=[-127]补=[11111111]原

=[10000000]反=[10000001]补(2)补码转换为真值例1:设

[x]补=01111110求x解:该补码最高位为0,对应真值为正值

故x=+1111110B=+126D例2:设

[x]补=10000010求x解:该补码最高位为1,对应真值为负值

故x=[10000001]反=[11111110]原

=-1111110B=-126D机器数的表示范围各种编码表示数的范围不同,以8位二进制带符号整数x为例:

11111111≤(x)原≤01111111即:

-(27-1)≤(x)原≤27-110000000≤(x)反≤01111111即:

-(27-1)≤(x)反≤27-110000000≤(x)补≤01111111即:

-27≤(x)补≤27-11字节补码的表示范围是_________。练习:

1.已知5位二进制定点整数的机器码是11111,则:其为原码时表示的十进制数真值是();其为补码时表示的十进制数真值是();其为反码时表示的十进制数真值是();其为移码时表示的十进制数真值是()。

5位二进制定点整数的补码表示的最大正数是();表示的最小负数是().

2.数值数据在机器中可采用原码、反码、补码或移码来表示,在()表示方式中真值0的机器码是唯一且为全“0”;在()表示方式中最高位为“0”表示负号,而为“1”表示正号。

3.假设计算机字长16位,用下列两种格式表示数据。

浮点格式:阶码5位二进制码(包括一位阶符),用移码表示,尾数11位原码(包括一位尾符),规定阶码在前,尾数在后,阶的基数为2。

定点整数:16位二进制数补码表示,符号为在最高位。若有一个16位的机器数FF00(十六进制表示),则它表示的定点整数和浮点数的十进制真值为(-28

)和(-3*213

)。

4.浮点数的正、负符号是由()决定的。

5.设一个4位二进制数X=0.a1a2a3a4,

若X>1/2,a1-

a4

取什么值;

X≥1/8,a1-

a4

取什么值。

6.在计算机中广泛使用的ASCII码共可表示()种字符,若每个字附加一位奇偶校验位,则每个字符的代码占()位。7.在浮点表示方法中()是隐含的.(1)位数(2)基数(3)阶码(4)尾数8.用8位补码表示整数-126的机器码算术右移一位后的结果是().

(1)10000001(2)01000001(3)11000001(4)11000010

9.假设在机器中浮点数的表示格式为当采用下列四种不同编码方式时(阶码基值为2,尾数以规格化表示),求十进制数-123.625在机器中的表示形式。当尾数用原码表示,阶码用补码表示为

(1)

,当尾数用补码表示,阶码用补码表示为(2),当尾数用原码表示,阶码用移码表示为(3),当尾数用补码表示,阶码用移码表示为(4)。阶符阶码尾符尾在一个逻辑电路中,有两个输入信号X、Y和一个输出信号V。当且仅当X=1、Y=O时,V=O,则V的逻辑表达式为__(29)__。

(29)A.X+YB.X·Y

C.X·YD.X+Y

11.若码值FFH是一个整数的原码表示,则该整数的真值为__(45)__:若码值FFH是一个整数的补码表示,则该整数的真值为_

_。

A.127

B.0

C.-127

D.-1

A.127

B.0

C.-127

D.-1补码的运算补码表示的两个数在进行加法运算时,可以把符号位与数值位同等处理,只要结果不超出机器所能表示的数值范围,运算后的结果按2n+1取模(对于整数);或按2取模(对于小数),就能得到本次加法的运算结果。(1)整数运算规则补码加法:[x+y]补=[x]补+[y]补(mod2n+1)

补码减法:[x-y]补=[x]补+[-y]补

(mod2n+1)

例:x=1001,y=-0011,用补码的减法求x+y和x-y

解:[x]补=01001,[y]补=11101,[-y]补=00011[x+y]补=[x]补+[y]补

=01001+11101=00110

(按模2的意义,最左边的1丢掉)所以x+y=+0110[x-y]补=[x]补+[-y]补

=01001+00011=01100所以x-y=+1100(1)小数运算规则

补码加法:[x+y]补=[x]补+[y]补

(mod2)

补码减法:[x-y]补=[x]补+[-y]补

(mod2)

例:x=0.1001,y=-0.0011,用补码的减法求x+y和x-y

解:[x]补=0.1001,[y]补=1.1101,[-y]补=0.0011[x+y]补=[x]补+[y]补=0.1001+1.1101=0.0110所以x+y=+0.1100[x-y]补=[x]补+[-y]补=0.1001+0.0011=0.1100所以x-y=+0.1100

练习已知:x=0.0101,y=-0.0010,用补码的加减法求x+y和x-y已知:x=0.0110,y=-0.0011,用补码的加减法求x+y和x-y溢出的产生及判断例:设机器数字长为8位,其中一位为符号位,令A=-93,B=+45,求[A-B]补。解:由A=-93=-1011101,得

[A]补=10100011

由B=+45=+0101101,得

[B]补=00101101,

[-B]补=11010011所以[A-B]补=[A]补+[-B]补

=10100011+11010011=101110110溢出的产生原因按模2n+1的意义,最左边的“1”自然丢掉,故[A-B]补=01110110,还原成真值得A-B=118,结果出错。这是因为A-B=-138超出了机器字长所能表示的范围。在计算机中,这种超出机器字长的现象,叫溢出。为此,在补码定点加减运算过程中,必须对结果是否溢出作出明确的判断。

溢出的判断双符号位法规定每个数的符号位用两位二进制数表示:正数用00,负数用11表示。结果的两符号位相同时,正常;结果的两符号位不同时,溢出。其中为01时,称为上溢;为10时,称为下溢例题已知:x=+0.1101,y=+1001,求[x+y]补的值解:[x]补=00.1101[y]补=00.1001[x+y]补=[x]补+[y]补=01.0110

结果符号出现01,表示结果溢出了,而且是上溢。2.已知:x=-0.1011,y=-0.1101,求[x+y]补的值解:[x]补=11.1011[y]补=11.1101[x+y]补=[x]补+[y]补=10.1000

结果符号出现10,表示结果溢出了,而且是下溢。

练习已知:x=+0.1001y=+1101

求:[x+y]补和[x-y]补的值,并判断结果是否有益处,是上溢还是下溢。已知:x=+0.1101y=+0101

求:[x+y]补和[x-y]补的值,并判断结果是否有益处,是上溢还是下溢。[x/2]补和[x/4]补的求法已知:X=0.1011,Y=-0.0101,

求:[X/2]补,[X/4]补,[Y/2]补,[Y/4]补,解:[X]补

=0.1011[X/2]补

=0.01011[X/4]补

=0.001011[Y]补

=1.1011[Y/2]补

=1.11011[Y/4]补

=1.111011练习

已知:X=0.1011,Y=-0.0101,

求:[X/2]补,[X/4]补,

[-X]补,[-X/2]补,[-X/4]补,

[Y/2]补,[Y/4]补,

[-Y]补,[-Y/2]补,[-Y/4]补

练习答案解:[X]补

=0.1011[X/2]补

=0.01011[X/4]补

=0.001011[-X]补

=1.0101[-X/2]补

=1.10101[-X/4]补

=1.110101[Y]补

=1.1011[Y/2]补

=1.11011[Y/4]补

=1.111011[-Y]补

=0.0101[-Y/2]补

=0.00101[-Y/4]补

=0.000101定点数与浮点数对R进制数NR=±S*R±E,可以有很多表示方法。如:十进制数:265.78可以有:265.78、2657.8*10-1、0.26578*103

、2.6578*102等。1、定点数表示法一般采用两种简单的约定:定点整数和定点小数。

(1)定点整数A带符号整数:某个N位二进制数,其最高位为符号位,其它N-1位为数值部分:

NfNn-2Nn-3……N2N1N0符号位

数值部分

小数点B、无符号整数:所有的数位都用来表示数值。

Nn-1Nn-2Nn-3……N3N2N1N0

数值部分小数点(2)定点小数用最高位表示符号,其它N-1位表示数值部分,将小数点定在数值部分的最高位左边。

NfNn-2Nn-1……N2N1N0符号位

数值部分

小数点

补码一位乘法

有的机器为方便加减法运算,数据以补码形式存放,为此有不少计算机直接采用补码相乘。符号位参与运算,结果是乘积的补码。初始化部分积0计数器Cd0乘数末位=0?部分积+[x]补部分积+0右移一位Cd=Cd-1Cd=0?乘数为正?部分积+[-x]补结束NYYYNN补码一位乘法

例:设X=-0.1101,Y=0.1011,用补码一位乘法求Z=X*Y解:[x]补=11.0011[y]补=00.1011

部分积乘数Cd

说明

00.000010114初始值+[x]补

11.001111.001111.100111013右移一位+[x]补

11.001110.110011.011001102右移一位+000.000011.011011.101100111右移一位+[x]补

11.001110.111011.011100010右移一位

乘积高位乘积低位所以[x*y]补=11.01110001X*Y=-0.10001111补码一位乘法

例:设X=-0.1101,Y=-0.1011,用补码一位乘法求Z=X*Y解:[x]补=11.0011[-x]补=00.1101[y]补=11.0101

部分积乘数Cd

说明

00.000001014初始值+[x]补

11.0011特征位是1,+[x]补

11.001111.100110103右移一位+000.0000特征位是0,+011.100111.110011012右移一位+[x]补

11.0011特征位是1,+[x]补

10.111111.011111101右移一位+000.0000特征位是0,+011.011111.101111110右移一位+[-x]补00.1101乘数是负值,+[-x]补

00.1000

乘积高位乘积低位所以[x*y]补=00.10001111X*Y=0.10001111练习设①

X=-0.1001,Y=0.1010,

②X=-0.0101,Y=-0.0011

用补码一位乘法求Z=X*Y定点除法在进行定点数除法时,只考虑

|被除数|

<|除数|

的情况,因为在这种情况下,商的小数点就在最左边一位有效数字的前面,操作规范。否则,称为溢出。定点补码一位除法(加减交替法)运算规则若被除数与除数同号,用被除数减去除数;若被除数与除数异号,用被除数加上除数;若所得余数与除数同号,商“1”,左移一位,减去除数;若所得余数与除数同号,商“0”,左移一位,加上除数;重复上一步,共做n-1次(n为除数的有效位数)。

例:设[X]补=1.0111,[Y]补=0.1101,求[X/Y]补解:[-Y]补=11.0011

被除数商操作说明

11.011100000初始化

+[Y]补00.110100.010000001

余数与除数同号,商“1”00.10000001

左移一位

+[-Y]补11.0011上次商1,减去除数

11.101100010

余数与除数异号,商“0”

11.01100010左移一位

+[Y]补00.1101上次商0,加上除数

00.001100101

余数与除数同号,商“1”00.01100101左移一位

+[-Y]补11.0011上次商1,减去除数

11.100101010

余数与除数异号,商“0”11.001010101

左移一位,商的最低位恒置1所以[X/Y]补=1.0101即X/Y=-0.1011

例:设[X]补=1.0111,[Y]补=1.0011,求[X/Y]补解:[-Y]补=00.1101

被除数商操作说明

11.011100000初始化+[-Y]补00.110100.010000000

余数与除数异号,商“0”00.10000000

左移一位

+[Y]补11.0011上次商0,加上除数

11.101100001

余数与除数同号,商“1”

11.01100001左移一位+[-Y]补00.1101上次商1,减去除数

00.001100010

余数与除数异号,商“0”00.01100010左移一位

+[Y]补11.0011上次商0,加上除数

11.100100101

余数与除数同号,商“1”11.001001011

左移一位,商的最低位恒置1所以[X/Y]补=0.1011即X/Y=0.1011例:设X=0.0100,Y=-0.1000,求[X/Y]补解:[X]补=0.0100,[Y]补=11.1000[-Y]补=00.1000

被除数商操作说明

00.010000000初始化

+

温馨提示

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

评论

0/150

提交评论