第一章 计算机中的数据和编码
儿歌张悬-计生证
第一章 计算机中的数据和编
码
1.1计算机中的数制
1.2计算机中数的表示
1.3计算机中的编码
1.1 计
算机中的数制之进位计数制
按照进位的方法进行计
数的
数制称为进位计数制,简进位制:
称进位制 十六进制二进制
常用数制: 十进制
H B
区分符: D或不用
3BA.4H 1011.11B
应用举例:123.45D或123.45
十六进制数3BA.4H
十进制数123.45 二进制数1011.11
基数:表明计数制允许选用的基本数码的个数称为基数,用R
表示。
十进制 二进制 十六进制
数码: 0-99
0,1 0-9,A-F
基数: R=10
R=2 R=16
表1.1 计算机中的数制对照表
十进制 二进制 十六进
制
十进制 二进制 十六进
制
0 0000
0 8
1000 8
9 9 1 1001
0001 1
A
10
0010
1010
2
2
0011
3 3 11
1011 B
0100
4 4 12 1100 C
D
0101 13 5 1101 5
E
14
0110 1110
6
6
0111
7 7 15 1111 F
在进位计数制中,一个数码处在数的不同位置时,它所代表的数
值是不同的。每一个数位赋予的
数值称为位权,简称权。
权的大小是以基数为底,数位的序号为指数的整数次幂,用I 表
示数位的序号,用R 表示数位的权。
例:342.54各数位的权分别为102, 101, 100, 101和102;
1和1011.01B各数位的权分别为23, 22, 21, 20, 222;34A.7H
。
16162, 161,
160各数位的权分别为和1
计算机中的数制之
进位计数制间的相互转换
进位计数制中,每个数位的数值等于该位数码与该位的权之乘积,
用Ki表示第i位的系数,则该位的数
值为KiRi。任意进位制的
数都可以写成按权展开的多项式和的形式,其一般表达 为:
m?i
?
RKN?
i1?i?n
1-1R1R n1+K n+2= K n+…+K 0R 02R nK
K+…+m Rm
m是进位制小数部分的位数)(n是进位制整数部分的位数, 二
进制数转换成十进制数1.
整数转换法(1)
二进制整数的按权展开式:
K 0×2 0
K n-2×2 n2+…+ N = K n1×2 n1+
把上式改写成下式:
N =(((Kn1×2+K
n2)×2+Kn3)×2+…+K 1)× +K 0
2 从上述表达式,得出转换方法如下:……
,加上第三高位,22
从最高位开始乘以,加上次高位,再乘以二进制整数转换成十进
制整数的
依此方法一直加到最低位为止。 方法称为乘2叠加法。
转换成十进制数。转换过程用
】【例1.1:把二进制数101101 线
图表示:
101101B = 45
转换结果是:
按权展开式如下:m
2)小数转换法:
二进制小数的
(
2
1+K
2×2N = K1×2 2+…+K
m× 把上式改写成下式:1 K
++12 K
2+…+2 1(–KmN = 2
1(K
1+2
1( )m)) 从上述表达式,得出转换方法如下:,加上第
三低2从最低位开始,除以2,加上次低
位,再除以二进制小……
依此方法一直到小数点后第一位除以2为止。位, 数转换成十
进制小
数的方法称为除2叠加法。转换过程用转换成十进制小数。
0.101111.2】 把二进制数【例
线图表示:
转换结果是:0.10111B =
0.71875
2.十进制数转换成二进制数
(1)整数转换法
转换方法如下:
把十进制数的整数部分连续除以2,依次取得余数,直到商为0
依次得出的余数序列即是二进制数从低位到高位各数位上停止,
的系数。十进制整数转换为二进制整数的方法称为除2取余法。
【例1.3】
把十进制数205转换成二进制整数。
用竖式表示如下:
十进制整数 2 二进制数位系数 = 余数
205 2 = 102
K0 = 1
K1 = 0 102 2 = 51
K2 = 1
51 2 = 25
K3 = 1 25 2 = 12
K4
= 0 12 2 = 6
K5 = 0 6 2 = 3
K6 = 1 3 2 = 1
K7 = 1
1 2 = 0
转换结果是:205 = 11001101B。
(2)小数转换法
转换方法如下:
把十进制小数部分连续乘以2,依次
取得整数,直到乘积小数部
分为0停止,依次得出乘积的整数序列即是二进制小数从高位到
低位
各数位上的系数。十进制小数转换成二进制小数的方法称为
乘2取整法。
【例1.4】 把十进制小数0.8125转换成二进制小数。
用竖式表示如下:
十进制整数部分= 二进制小数的数位系数 2 十进制小数×.
1 = 1 K0.8125×2 =
1.625
K 0.625×2 = 1.25 2 = 1
K2
= 0.5 3 = 0 0.25×K 0.5×2 = 1.0 4 =
1
转换结果是:0.8125 = 0.1101B。 3. 二进制数转换成十六
进制
数整数二进制数转换成十六进制数的转换方法是:从小数点开始,
每四位二进制数为一组用
一位十六进部分向左,小数部分向右,
0补足。制数表示,不足四位的用
转换成十六进制数。】【例1.5
把二进制数.10101 0101. 1010
1(000)1011 二
进制数 (0)111
8 . A
7 8 5 十六进制
.10101B =
7B5.A8H。转换结果是: 4.
十六进制数转换成二进制数
十六进制数转换成二进制数的转换方法是:每一位十六进制
数用相应的四位二进制数代替,多余的0舍去。 转换成二进
制数。
把十六进制数9F.8【例1.6】8 F . 十六进
制数 9
二进制数 1001 1111
. 1000
转换结果是:9F.8H = 10011111.1B。
计算机中的数制之进位计数制的计量单位
位二进制信息组成一个8,由)bit二进制信息的基本单位是位
(.
。和
B字节(Byte)。表示位和字节的英文符号分别为 b
个十进位分挡的,即:在国际单位制中,十进制是以3 ;)= 10
3 = 1k = 1000
千(kilo
;)= 10 6 = 1M
= 10 3 k = 1000k 兆(mega
= 10 9 = 1G
= 10 3 M = 1000M; 吉(giga)
= 10 12 =
1T = 10 3 G = 1000G。太(tera)
10个二进位分挡的,即:在国际单位制中,二进制是以 ;kilo)
= 2 10 = 1K =
1024 千(
;)= 2 20 = 1M = 2 10 K =
1024K 兆(mega
= 2 30 = 1G = 2 10 M =
1024M; 吉(giga)
。tera)= 2 40 = 1T = 2
10 G = 1024G 太(
计算机中数的表示之机器数和真值而把这个数的本身
称为真数在计算机中的表示形式称为机器数, 值。 1.数的符
号数值
表示正号,010和表示,以在计算机中,数的符号只能用
表示负号。在计算机中通常把符号放在最高位
,该位称1以为符
号位。一个机器数是由符号位和数值位两部分组成的。;真值是,
对应的机器
数为01001B例如,真值是+1001B1001B,对应的机
器数为11001B。
2.数的位数固定
一台计计算机内一次能表示二进制数的位数叫做计算机的字长,
计算机字算机的字长是固定的。字长为
位叫做一个字节,86432
位、位、16位、长一般都是字节的整数倍,如字长8
128位。位
及
计算机中数的表示之机器数的表示方法1.2
种:原码、反码、补码和移码。常用的机器数表示方法有4 .原
码表示法
1,数值1原码表示法为:正数的符号位为0,负数
的符号位为 位是真值的绝对值。 =
0X1X2…Xn;即: X =
+X1X2…Xn,[X]原X1X2…Xn,[X] X
= 原 =
1X1X2…Xn。 ,X2 =
1001010的原码 【例1.7】 写出真值X1
= +1001010 =
11001010。= 01001010 [X1]原 ,[X2]
原
位原码表示的最大和最小整数。【例1.8】 写出8 原 =
[01111111];1111111B =+127原 =+Max[X]【例1.9】
1111111B = 原 。= 127 【例1.10】Min[X]原=
[11111111] 127。
8用位原码表示整数的范围是+127~
2.反码表示法,数值位
取真值;负数的符号0反码表示法为:正数的符号位为
1位为,
数值位取真值的相反码。
,[X]Xn = 0 X1X2…反X=
即:+X1X2…Xn ; = 1 X1X2…
Xn 反[X] ,X1X2…Xn X=
的反码。X2 = 1100111【例1.9】
写出真值X1 =+1100111,
= 10011000。[X1]反 =
01100111,[X2]反位反码表示的最大和写
出8
【例1.10】
最小整数。 ;127Max[X]反 = [01111111]反 =
+1111111B =+ 。
Min[X]反 = [10000000]反 1111111B =
=
127 127~。用8位反码表示整数的范围是+127
3.补码表示法,
数值位取用补码表示计算机中的有符号数,正数的符号位为0
,
数值位取真值的相反码加1。 真值;负数的符号位为1 =
0X1X2…Xn;X1X2…Xn 即: 当X = +时,[X]补
X =
X1X2…Xn时, [X]补= 1( X1X2…Xn+1当 )X2 =
X1 = +1001110,写出真值【例1.11】 1001110的补码。
[X2]补= 10110010 [X1]补= 01001110
8位补码表示的最大和最小整数。【例1.12】 写出127 +
=1111111B =+=
[01111111]Max[X]补补10000000B =
=
128
补Min[X]补 = [10000000]
128。8位补码表示整数的范围是+127~
用补码表示法能使减法运算转化为加法运算
,并且在进行加减运
算时,能使符号位和数值位一起运算,从而简化运算规则。
4.移码表示法
根据多就是在补码的基础上增加一个偏移量。移码也称作增码,
字长为8数高级程序语言软件包的实数标准格式,
其位的移码,
1023位的移码,其偏移量为;字长为11127(7FH)偏移量为
)
3FFH。(X2 =
0000011B的移码。+0000011B, 【例1.14】 写出X1
=[X1]
移 = [X1]补+偏移量 = [00000011B]补+01111111B =
[10000010B]移;
[X2]移 = [X2]补+偏移量=
[11111101B]补+01111111B =
[01111100B]移。
计算机中数的表示之数的定点和浮点表示
任意一个二进制数都可以表示为纯整数或纯小数与一个2的整
数次幂的乘积。即:
N = 2 E×S
其中:S称为数N的尾数,是数值的有效数字;E称为数N的阶
码(指
数),指明小数点的位置;2称为阶码的底。
1.定点数表示法
当阶码为常数时,这种数的表示方法称为定点数表示法。
定点数表示法的小数点位置有以下两种约定:
1)所有机器数的小数点位置隐含在数的最低位之后,把所有的
数化为纯整数,这称为定点整数。
2)所有机器数的小数点位置隐含在符号位之后,把所有的数化为
纯小数,这称为定点小数。
定点数表示方法简单直观,但表示数的范围较小。.
2.浮点数表示法
当阶码取不同的数值时,这种数的表示方法称为浮点数表示法。
浮点数在计算机中的表示形式如下:
SfES
其中:E是阶码,常用移码表示;Sf是尾数的符号位;S是尾数,
一般采用原码表示。
浮点数表示法也有以下两种形式:
单精度浮点数(Single):字长为32位实数,由
1位符号、8位
阶码和23位尾数组成,以4个字节形式存储。
双精度浮点数(D
ouble):字长为64位实数,由1位符号、
11位阶码和52位尾数组成,以8个字节形式存储。
1.3 计算机中的编码之数字编码
计算机的输入输出数据是十进制
数,而计算机内部运算是用二进
制数,因此十进制数必须用二进制数形式表达。用四位二进制数
表示一位十进制数的编码,称为二进制编码的十进制数,简称
BCD码。最常用的是8421BCD码。
8421BCD码的4个二进制位自左向右每位的权分别是8, 4, 2,
1,用二进制数0000~1001十个编码分别表示十进制数的0~9
在一个
字节内存放两位BCD数称为压缩的BCD数,如在一
个字节内只存。99表示十进制数1001100
1B数BCD压缩的.
放一位BCD数称为非压缩的BCD数,高半个字节为0,低半个
字节
为BCD数,如非压缩的BCD数00001001B表示十进制数9。
在计算机中的扩展精度BCD数
占10个字节(80位),第1~9
个字节是压缩的BCD数,也就是18位BCD数,第10个字节是
符号位。
8421BCD码和十进制数的对应关系如表1.2所示
表1.2
8421BCD编码表
十 进 制 数8 4 2
1
0 0 0 00
0 0 0
11
0 0 1 02
0 0 1
13
0 1 0 04
0 1 0
15
0 1 1 06
0 1 1
1 0 0
1 0 0
计算机中的编码之校验码
由于计算机结构、工艺及电气性能等方面因素的影响,常
常使数
据在存取、传输的过程中出现错误,为了及时发现并修正错误,
计算机采用校验码对传输
的数据进行校验和修正。校验码的种类
很多,最普遍使用的检验码是奇偶校验码。
奇偶校验
码是将每个信息的代码,扩展一个二进制位作为校验位。
校验位的取值原则是:若是奇校验,在编码中含
有“1”的个数
连同校验位的取值共有奇数个;若是偶校验,在编码中含有“1”
的个数连同校
验位的取值共有偶数个。
例如,是奇校验,信息编码是10
001000B,在信息中有两个“1”,
所以校验位取值为“1”,使“1”的总数有奇数个,该信息
的奇
校验码为110001000B。
在计算机中进行代码检验时,当检测信息编码中“
1”的个数与
预先设定的奇偶校验不符时,表明被检测的信息有误。
计算机中的编码之字符编码
数字、字母、通用符号和控制符号等统称为字符,用来表示字符
的二进制代码称为字符编码。
国际上普遍采用的一种字符编码是美国国家信息交换代码
(American
Standard Code for Information Interchange),简称
码
ASCII.
ASCII码选择了4类共128个常用字符,说明如下:
数字0~9:ASCII码的10个数字字符和BCD码是两个不同
概念。
字母:包括26个大写英文字母和小写英文字母。
通用符号:如 * 、
:、%、= 等。
控制符号:如ESC、CR等。
计算机中的编码之汉字编码
1.区位码
汉字的区位编码是把汉
字所在位置的区号和位号合起来(区号
在前,位号在后)得到的四位数字的编码。例如,“啊”字的区<
br>位编码是1601,“波”字的区位编码是1808。
2.国标码
汉字的国标码是用二进制表示汉字的编码,行和列都是7位
二进制编码。
3.内码
汉字在计算机内部存储、运算的信息代码称为汉字的内码。
为了便于汉字和西文信
息处理有较好的兼容性,每个字节的最高
位作为区分ASCII码和汉字内部码的标识位。标识位为“0
”,则
是ASCII码,又称为半角字符编码;标识位为“1”,则是汉字内
码,采用汉字内码
的字符编码称为全角字符编码。
无论是何种汉字输入方法,汉字的内码都是相同的。