文档库 最新最全的文档下载
当前位置:文档库 › 第一章 计算机中的数据和编码资料

第一章 计算机中的数据和编码资料

第一章计算机中的数据和编码

1.1计算机中的数制

1.2计算机中数的表示

1.3计算机中的编码

1.1 计算机中的数制之进位计数制

进位制: 按照进位的方法进行计数的数制称为进位计数制,简称进位制

常用数制:十进制二进制十六进制

区分符:D或不用 B H

应用举例:123.45D或123.45 1011.11B 3BA.4H

十进制数123.45 二进制数1011.11 十六进制数3BA.4H

基数:表明计数制允许选用的基本数码的个数称为基数,用R 表示。

十进制二进制十六进制数码:0-99 0,1 0-9,A-F

基数:R=10 R=2 R=16

表1.1 计算机中的数制对照表

在进位计数制中,一个数码处在数的不同位置时,它所代表的数值是不同的。每一个数位赋予的数值称为位权,简称权。

权的大小是以基数为底,数位的序号为指数的整数次幂,用I 表示数位的序号,用R 表示数位的权。

例:342.54各数位的权分别为

和; 1011.01B 各数位的权分别为

和;34A.7H

各数位的权分别为162, 161, 160和。 计算机中的数制之进位计数制间的相互转换

进位计数制中,每个数位的数值等于该位数码与该位的权之乘积,用Ki 表示第i 位的系数,则该位的数值为KiRi 。任意进位制的数都可以写成按权展开的多项式和的形式,其一般表达为:

1m i i i n N K R -=-=

++…+K 0R 0+K-+…+

(n是进位制整数部分的位数,m是进位制小数部分的位数)1.二进制数转换成十进制数

(1)整数转换法

二进制整数的按权展开式:

+K n-+…+K 0×2 0 把上式改写成下式:

N =(((+)×2+)×2+…+K 1)×2+K 0

从上述表达式,得出转换方法如下:

从最高位开始乘以2,加上次高位,再乘以2,加上第三高位,……依此方法一直加到最低位为止。二进制整数转换成十进制整数的方法称为乘2叠加法。

【例1.1】:把二进制数101101转换成十进制数。转换过程用线图表示:

转换结果是:101101B = 45

(2)小数转换法:

二进制小数的按权展开式如下:

++…+

把上式改写成下式:

(+(+…+(+1+2 –1 K )))

从上述表达式,得出转换方法如下:

从最低位开始,除以2,加上次低位,再除以2,加上第三低位,……依此方法一直到小数点后第一位除以2为止。二进制小数转换成十进制小数的方法称为除2叠加法。

【例1.2】把二进制数0.10111转换成十进制小数。转换过程用线图表示:

转换结果是:0.10111B = 0.71875

2.十进制数转换成二进制数

(1)整数转换法

转换方法如下:

把十进制数的整数部分连续除以2,依次取得余数,直到商为0停止,依次得出的余数序列即是二进制数从低位到高位各数位上的系数。十进制整数转换为二进制整数的方法称为除2取余法。【例1.3】把十进制数205转换成二进制整数。

用竖式表示如下:

十进制整数/ 2 二进制数位系数= 余数

205 / 2 = 102 K0 = 1

102 / 2 = 51 K1 = 0

51 / 2 = 25 K2 = 1

25 / 2 = 12 K3 = 1

12 / 2 = 6 K4 = 0

6 / 2 = 3 K5 = 0

3 / 2 = 1 K6 = 1

1 /

2 = 0 K7 = 1

转换结果是:205 = 11001101B。

(2)小数转换法

转换方法如下:

把十进制小数部分连续乘以2,依次取得整数,直到乘积小数部分为0停止,依次得出乘积的整数序列即是二进制小数从高位到低位各数位上的系数。十进制小数转换成二进制小数的方法称为乘2取整法。

【例1.4】把十进制小数0.8125转换成二进制小数。

用竖式表示如下:

十进制小数×2 二进制小数的数位系数= 十进制整数部分0.8125×2 = 1.625

0.625×2 = 1.25

0.25×2 = 0.5

0.5×2 = 1.0

转换结果是:0.8125 = 0.1101B。

3. 二进制数转换成十六进制数

二进制数转换成十六进制数的转换方法是:从小数点开始,整数部分向左,小数部分向右,每四位二进制数为一组用一位十六进制数表示,不足四位的用0补足。

【例1.5】把二进制数11110110101.10101转换成十六进制数。

二进制数(0)111 1011 0101. 1010 1(000)

十六进制7 8 5 . A 8

转换结果是:11110110101.10101B = 7B5.A8H。

4. 十六进制数转换成二进制数

十六进制数转换成二进制数的转换方法是:每一位十六进制数用相应的四位二进制数代替,多余的0舍去。

【例1.6】把十六进制数9F.8转换成二进制数。

十六进制数9 F . 8

二进制数1001 1111 . 1000

转换结果是:9F.8H = 10011111.1B。

计算机中的数制之进位计数制的计量单位

二进制信息的基本单位是位(bit),由8位二进制信息组成一个字节(Byte)。表示位和字节的英文符号分别为 b 和B。

在国际单位制中,十进制是以3个十进位分挡的,即:

千(kilo)= 10 3 = 1k = 1000;

兆(mega)= 10 6 = 1M = 10 3 k = 1000k;

吉(giga)= 10 9 = 1G = 10 3 M = 1000M;

太(tera)= 10 12 = 1T = 10 3 G = 1000G。

在国际单位制中,二进制是以10个二进位分挡的,即:

千(kilo)= 2 10 = 1K = 1024;

兆(mega)= 2 20 = 1M = 2 10 K = 1024K;

吉(giga)= 2 30 = 1G = 2 10 M = 1024M;

太(tera)= 2 40 = 1T = 2 10 G = 1024G。

计算机中数的表示之机器数和真值

数在计算机中的表示形式称为机器数,而把这个数的本身称为真值。

1.数的符号数值

在计算机中,数的符号只能用0和1表示,以0表示正号,以1表示负号。在计算机中通常把符号放在最高位,该位称为符号位。一个机器数是由符号位和数值位两部分组成的。

例如,真值是+1001B,对应的机器数为01001B;真值是,对应的机器数为11001B。

2.数的位数固定

计算机内一次能表示二进制数的位数叫做计算机的字长,一台计算机的字长是固定的。字长为8位叫做一个字节,计算机字长一般都是字节的整数倍,如字长8位、16位、32位、64位及128位。

1.2 计算机中数的表示之机器数的表示方法

常用的机器数表示方法有4种:原码、反码、补码和移码。1.原码表示法

原码表示法为:正数的符号位为0,负数的符号位为1,数值位是真值的绝对值。

即:X =+X1X2…Xn,[X]原= 0X1X2…Xn;

,[X]原= 1X1X2…Xn。【例1.7】写出真值X1 = +1001010,的原码[X1]原= 01001010,[X2]原= 11001010。

【例1.8】写出8位原码表示的最大和最小整数。

Max[X]原= [01111111]原=+1111111B =+127;

Min[X]原= [11111111]原。

用8位原码表示整数的范围是+127~。

2.反码表示法

反码表示法为:正数的符号位为0,数值位取真值;负数的符号位为1,数值位取真值的相反码。

即:X=+,[X]反= 0 X1X2…Xn ;

,[X]反= 1 X1X2…Xn

【例1.9】写出真值X1 =+1100111,的反码。

[X1]反= 01100111,[X2]反= 10011000。【例1.10】写出8位反码表示的最大和最小整数。

Max[X]反= [01111111]反= +1111111B =+127;

Min[X]反= [10000000]反。用8位反码表示整数的范围是+127~。

3.补码表示法

用补码表示计算机中的有符号数,正数的符号位为0,数值位取真值;负数的符号位为1,数值位取真值的相反码加1。

即:当X = +X1X2…Xn时,[X]补= 0X1X2…Xn;

当时,[X]补= 1(X1X2…Xn+1)【例1.11】写出真值X1 = +1001110,的补码。

[X1]补= 01001110 [X2]补= 10110010

【例1.12】写出8位补码表示的最大和最小整数。

Max[X]补= [01111111]补=+1111111B =+127

Min[X]补= [10000000]补

8位补码表示整数的范围是+127~。

用补码表示法能使减法运算转化为加法运算,并且在进行加减运算时,能使符号位和数值位一起运算,从而简化运算规则。4.移码表示法

移码也称作增码,就是在补码的基础上增加一个偏移量。根据多数高级程序语言软件包的实数标准格式,字长为8位的移码,其偏移量为127(7FH);字长为11位的移码,其偏移量为1023(3FFH)。

【例1.14】写出X1 =+0000011B,的移码。[X1]移= [X1]补+偏移量= [00000011B]补+01111111B =

[10000010B]移;

[X2]移= [X2]补+偏移量= [11111101B]补+01111111B = [01111100B]移。

计算机中数的表示之数的定点和浮点表示

任意一个二进制数都可以表示为纯整数或纯小数与一个2的整数次幂的乘积。即:

N = 2 E×S

其中:S称为数N的尾数,是数值的有效数字;E称为数N的阶码(指数),指明小数点的位置;2称为阶码的底。

1.定点数表示法

当阶码为常数时,这种数的表示方法称为定点数表示法。

定点数表示法的小数点位置有以下两种约定:

1)所有机器数的小数点位置隐含在数的最低位之后,把所有的数化为纯整数,这称为定点整数。

2)所有机器数的小数点位置隐含在符号位之后,把所有的数化为纯小数,这称为定点小数。

定点数表示方法简单直观,但表示数的范围较小。

2.浮点数表示法

当阶码取不同的数值时,这种数的表示方法称为浮点数表示法。浮点数在计算机中的表示形式如下:

其中:E是阶码,常用移码表示;Sf是尾数的符号位;S是尾数,一般采用原码表示。

浮点数表示法也有以下两种形式:

单精度浮点数(Single):字长为32位实数,由1位符号、8位阶码和23位尾数组成,以4个字节形式存储。

双精度浮点数(Double):字长为64位实数,由1位符号、11位阶码和52位尾数组成,以8个字节形式存储。

1.3 计算机中的编码之数字编码

计算机的输入输出数据是十进制数,而计算机内部运算是用二进制数,因此十进制数必须用二进制数形式表达。用四位二进制数表示一位十进制数的编码,称为二进制编码的十进制数,简称BCD码。最常用的是8421BCD码。

8421BCD码的4个二进制位自左向右每位的权分别是8, 4, 2, 1,用二进制数0000~1001十个编码分别表示十进制数的0~9 在一个字节内存放两位BCD数称为压缩的BCD数,如压缩的BCD数10011001B表示十进制数99。在一个字节内只存放一位BCD数称为非压缩的BCD数,高半个字节为0,低半个字节为BCD数,如非压缩的BCD数00001001B表示十进制数9。在计算机中的扩展精度BCD数占10个字节(80位),第1~9个字节是压缩的BCD数,也就是18位BCD数,第10个字节是符号位。

8421BCD码和十进制数的对应关系如表1.2所示

表1.2 8421BCD编码表

计算机中的编码之校验码

由于计算机结构、工艺及电气性能等方面因素的影响,常常使数据在存取、传输的过程中出现错误,为了及时发现并修正错误,计算机采用校验码对传输的数据进行校验和修正。校验码的种类很多,最普遍使用的检验码是奇偶校验码。

奇偶校验码是将每个信息的代码,扩展一个二进制位作为校验位。校验位的取值原则是:若是奇校验,在编码中含有“1”的个数连同校验位的取值共有奇数个;若是偶校验,在编码中含有“1”的个数连同校验位的取值共有偶数个。

例如,是奇校验,信息编码是10001000B,在信息中有两个“1”,所以校验位取值为“1”,使“1”的总数有奇数个,该信息的奇校验码为110001000B。

在计算机中进行代码检验时,当检测信息编码中“1”的个数与预先设定的奇/偶校验不符时,表明被检测的信息有误。

计算机中的编码之字符编码

数字、字母、通用符号和控制符号等统称为字符,用来表示字符的二进制代码称为字符编码。

国际上普遍采用的一种字符编码是美国国家信息交换代码(American Standard Code for Information Interchange),简称ASCII码

ASCII码选择了4类共128个常用字符,说明如下:数字0~9:ASCII码的10个数字字符和BCD码是两个不同概念。

字母:包括26个大写英文字母和小写英文字母。

通用符号:如* 、:、%、= 等。

控制符号:如ESC、CR等。

计算机中的编码之汉字编码

1.区位码

汉字的区位编码是把汉字所在位置的区号和位号合起来(区号在前,位号在后)得到的四位数字的编码。例如,“啊”字的区位编码是1601,“波”字的区位编码是1808。

2.国标码

汉字的国标码是用二进制表示汉字的编码,行和列都是7位二进制编码。

3.内码

汉字在计算机内部存储、运算的信息代码称为汉字的内码。为了便于汉字和西文信息处理有较好的兼容性,每个字节的最高位作为区分ASCII码和汉字内部码的标识位。标识位为“0”,则是ASCII码,又称为半角字符编码;标识位为“1”,则是汉字内码,采用汉字内码的字符编码称为全角字符编码。

无论是何种汉字输入方法,汉字的内码都是相同的。

相关文档
相关文档 最新文档