设为首页 | 加入收藏夹

推荐阅读

    没有
站内搜索

您现在的位置:计算机基础知识首页 >> 计算机基础知识 >> 计算机基础2 >> 信息正文

计算机常用的数制及编码

2011/9/7 10:07:46 作者:计算机基础知识试题 录入:应序康 访问:9711 次 被顶:1 次 字号:【
摘要:1.2 计算机常用的数制及编码数制也称计数制,是指用一组固定的符号和统一的规则来表示数值的方法。编码是采用少量的基本符号,选用一定的组合原则,以表示大量复杂多样的信息的技术。计算机是信息处理的工具,任何信息必须转换成二进制形式数据后才能由计...

1.2 计算机常用的数制及编码
数制也称计数制,是指用一组固定的符号和统一的规则来表示数值的方法。编码是采用
少量的基本符号,选用一定的组合原则,以表示大量复杂多样的信息的技术。计算机是信息
处理的工具,任何信息必须转换成二进制形式数据后才能由计算机进行处理、存储和传输。
1.2.1 二进制数
我们习惯使用的十进制数由0、1、2、3、4、5、6、7、8、9十个不同的符号组成,每一个
符号处于十进制数中不同的位置时,它所代表的实际数值是不一样的。例如1 9 9 9年可表示成
1×1 0 0 0+9×1 0 0+9×1 0+9×1
=1×1 03+9×1 02+9×1 01+9×1 00
式中每个数字符号的位置不同,它所代表的数值也不同,这就是经常所说的个位、十位、
百位、千位、⋯⋯的意思。二进制数和十进制数一样,也是一种进位计数制,但它的基数是2。
数中0和1的位置不同,它所代表的数值也不同。例如二进制数11 0 1表示十进制数1 3,如下所示:
( 11 0 1 )2 = 1×23+1×22+0×21+1×20
=8+4+0+1=1 3
一个二进制数具有下列两个基本特点:
• 两个不同的数字符号,即0和1。
• 逢二进一。
一般我们用( ) 角标表示不同进制的数。例如:十进制用( )1 0表示,二进制数用( ) 2表示。
在微机中,一般在数字的后面,用特定字母表示该数的进制。例如:

B—二进制D—十进制( D可省略) O—八进制H—十六进制
1.2.2 二进制与其它数制
在进位计数制中有数位,基数和位权三个要素。数位是指数码在一个数中所处的位置;
基数是指在某种进位计数制中,每个数位上所能使用的数码的个数。例如:二进制数基数是2,
每个数位上所能使用的数码为0和1两个数码。在数制中有一个规则,如果是N进制数,必须是
逢N进1。对于多位数,处在某一位上的“ 1”所表示的数值的大小,称为该位的位权。例如,
二进制第2位的位权为2,第3位的位权为4。一般情况下,对于N进制数,整数部分第i位的位
权为Ni-1,而小数部分第j位的位权为N-j。
下面主要介绍与计算机有关的常用的几种进位计数制。
1.十进制(十进位计数制)
具有十个不同的数码符号0、1、2、3、4、5、6、7、8、9,其基数为1 0;十进制数的特
点是逢十进一,例如:
( 1 0 11 )1 0 = 1×1 03+0×1 02+1×1 01+1×1 00
2.八进制(八进位计数制)
具有八个不同的数码符号0、1、2、3、4、5、6、7,其基数为8;八进制数的特点是逢八
进一,例如:
( 1 0 11 )8 = 1×83+0×82+1×81+1×80
= ( 5 2 1 )1 0
3.十六进制(十六进位计数制)
具有十六个不同的数码符号0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,其
基数为1 6,十六进制数的特点是逢十六进一,例如:
( 1 0 11 )1 6 = 1×1 63+0×1 62+1×1 61+1×1 60
= ( 4 11 3 )1 0
表1-1 四位二进制数与其它数制的对照
二进制十进制八进制十六进制
0 0 0 0 0 0 0
0 0 0 1 1 1 1
0 0 1 0 2 2 2
0 0 11 3 3 3
0 1 0 0 4 4 4
0 1 0 1 5 5 5
0 11 0 6 6 6
0 111 7 7 7
1 0 0 0 8 1 0 8
1 0 0 1 9 11 9
1 0 1 0 1 0 1 2 A
1 0 11 11 1 3 B
11 0 0 1 2 1 4 C
11 0 1 1 3 1 5 D
111 0 1 4 1 6 E
1111 1 5 1 7 F

1.2.3 不同进制数之间的转换
用计算机处理十进制数,必须先把它转化成二进制数才能被计算机所接受,同理,计算
结果应将二进制数转换成人们习惯的十进制数。这就产生了不同进制数之间的转换问题。
1. 十进制数与二进制数之间的转换
(1) 十进制整数转换成二进制整数
把一个十进制整数转换为二进制整数的方法如下:
把被转换的十进制整数反复地除以2,直到商为0,所得的余数(从末位读起)就是这个数的
二进制表示。简单地说,就是“除2取余法”。
例如,将十进制整数( 2 1 5 )1 0转换成二进制整数的方法如下:
于是,( 2 1 5 )1 0=( 11 0 1 0 111 )2
了解了十进制整数转换成二进制整数的方法以后,那么,了解十进制整数转换成八进制
或十六进制就很容易了。十进制整数转换成八进制整数的方法是“除8取余法”,十进制整数
转换成十六进制整数的方法是“除1 6取余法”。
(2) 十进制小数转换成二进制小数
十进制小数转换成二进制小数是将十进制小数连续乘以2,选取进位整数,直到满足精度
要求为止。简称“乘2取整法”。
例如,将十进制小数(0.687 5)10转换成二进制小数的方法如下:
0 . 6 8 7 5
×) 2
1 . 3 7 5 0 整数=1
0 . 3 7 5 0
×) 2
0 . 7 5 0 0 整数=0
×) 2
1 . 5 0 0 0 整数=1
0 . 5 0 0 0
×) 2
1 . 0 整数=1
将十进制小数0 . 6 8 7 5连续乘以2,把每次所进位的整数,按从上往下的顺序写出。
于是,( 0 . 6 8 7 5 )1 0=( 0 . 1 0 11 )2

了解了十进制小数转换成二进制小数的方法清楚以后,那么,了解十进制小数转换成八
进制小数或十六进制小数就很容易了。十进制小数转换成八进制小数的方法是“乘8取整法”,
十进制小数转换成十六进制小数的方法是“乘1 6取整法”。
(3) 二进制数转换成十进制数
把二进制数转换为十进制数的方法是,将二进制数按权展开求和即可。
例如,将( 1 0 11 0 0 11 . 1 0 1 )2 转换成十进制数的方法如下:
1×27 代表十进制数1 2 8
0×26 代表十进制数0
1×25 代表十进制数3 2
1×24 代表十进制数1 6
0×23 代表十进制数0
0×22 代表十进制数0
1×21 代表十进制数2
1×20 代表十进制数1
1×2-1 代表十进制数0 . 5
0×2-2 代表十进制数0
1×2-3 代表十进制数0 . 1 2 5
于是,( 1 0 11 0 0 11 . 1 0 1 )2=1 2 8+3 2+1 6+2+1+0 . 5+0 . 1 2 5=( 1 7 9 . 6 2 5 )1 0。同理,非十进制
数转换成十进制数的方法是,把各个非十进制数按权展开求和即可。如把二进制数(或八进制
数或十六进制数)写成2 (或8或1 6 )的各次幂之和的形式,然后再计算其结果。
2. 二进制数与八进制数之间的转换
二进制数与八进制数之间的转换十分简捷方便,他们之间的对应关系是,八进制数的每
一位对应二进制数的三位。
(1) 二进制数转换成八进制数
由于二进制数和八进制数之间存在特殊关系,即81=23,因此转换方法比较容易,具体转
换方法是,将二进制数从小数点开始,整数部分从右向左3位一组,小数部分从左向右3位一
组,不足三位用0补足即可。
例如,将( 1 0 11 0 1 0 111 0 . 11 0 11 )2化为八进制数的方法如下:
0 1 0 11 0 1 0 1 11 0 . 11 0 11 0
↓ ↓ ↓ ↓ ↓ ↓
2 6 5 6 . 6 6
于是,( 1 0 11 0 1 0 111 0 . 11 0 11 )2=( 2 6 5 6 . 6 6 )8
(2) 八进制数转换成二进制数
方法为,以小数点为界,向左或向右每一位八进制数用相应的三位二进制数取代,然后
将其连在一起即可。
例如,将( 6 2 3 7 . 4 3 1 )8转换为二进制数的方法如下:
6 2 3 7 . 4 3 1
↓ ↓ ↓ ↓ ↓ ↓ ↓
11 0 0 1 0 0 11 111 . 1 0 0 0 11 0 0 1

于是,( 6 2 3 7 . 4 3 1 )8=( 11 0 0 1 0 0 11111 . 1 0 0 0 11 0 0 1 )2
3. 二进制数与十六进制数之间的转换
(1) 二进制数转换成十六进制数
二进制数的每四位,刚好对应于十六进制数的一位( 1 61=24),其转换方法是,将二进制数
从小数点开始,整数部分从右向左4位一组,小数部分从左向右4位一组,不足四位用0补足,
每组对应一位十六进制数即可得到十六进制数。
例将二进制数( 1 0 1 0 0 1 0 1 0 111 . 11 0 11 0 1 0 1 )2 转换为十六进制数。
解:1 0 1 0 0 1 0 1 0 111 . 11 0 1 1 0 1 0 1 0 0 0
↓ ↓ ↓ . ↓ ↓
A 5 7 . D A 8
于是,( 1 0 1 0 0 1 0 1 0 111 . 11 0 11 0 1 0 1 )2=( A 5 7 . D A 8 )1 6
例将二进制数( 1 0 0 1 0 11 0 1 0 11111 )2 转换为十六进制数。
解:0 1 0 0 1 0 11 0 1 0 1 1111
↓ ↓ ↓ ↓
4 B 5 F
于是,( 1 0 0 1 0 11 0 1 0 11111 )2=( 4 B 5 F )1 6
(2) 十六进制数转换成二进制数
方法为以小数点为界,向左或向右每一位十六进制数用相应的四位二进制数取代,然后
将其连在一起即可。
例将( 3 A B . 11 )1 6转换成二进制数。
解:3 A B . 1 1
↓ ↓ ↓ ↓ ↓
0 0 11 1 0 1 0 1 0 11 . 0 0 0 1 0 0 0 1
于是,( 3 A B . 11 )1 6=( 111 0 1 0 1 0 11 . 0 0 0 1 0 0 0 1 )2
1.2.4 二进制数在计算机内的表示
计算机内表示的数,分成整数和实数两大类。在计算机内部,数据是以二进制的形式存
储和运算的。数的正负用高位字节的最高位来表示,定义为符号位,用“ 0”表示正数,“1”
表示负数。例如,二进制数+ 11 0 1 0 0 0在机器内的表示为:
1.整数的表示
计算机中的整数一般用定点数表示,定点数指小数点在数中有固定的位置。整数又可分
为无符号整数(不带符号的整数)和整数(带符号的整数)。无符号整数中,所有二进制位全部用
来表示数的大小,有符号整数用最高位表示数的正负号,其他位表示数的大小。如果用一个
字节表示一个无符号整数,其取值范围是0~2 5 5 ( 28-1 )。表示一个有符号整数,其取值范围
-1 2 8~+1 2 7 (-27~+27-1 )。例如:如果用一个字节表示整数,则能表示的最大正整数为
0 1111111 (最高位为符号位),即最大值为1 2 7,若数值>| 1 2 7 |,则“溢出”。计算机中的地址常

用无符号整数表示,可以用8位、1 6位或3 2位来表示。
2.实数的表示
实数一般用浮点数表示,因为它的小数点位置不固定,所以称浮点数。它是既有整数又
有小数的数,纯小数可以看作实数的特例,例如:
5 7 . 6 2 5、-1 9 8 4 . 0 4 5、0 . 0 0 4 5 6都是实数
以上三个数又可以表示为:
5 7 . 6 2 5=1 02×( 0 . 5 7 6 2 5 )
-1 9 8 4 . 0 4 5=1 04×(-0 . 1 9 8 4 0 4 5 )
0 . 0 0 4 5 6=1 0- 2×(0.456)
其中指数部分用来指出实数中小数点的位置,括号内是一个纯小数。二进制的实数表示
也是这样,例如11 0 . 1 0 1可表示为:
11 0 . 1 0 1=21 0×1.10101 = 2-1 0×11010.1 = 2+11×0 . 11 0 1 0 1
在计算机中一个浮点数由指数(阶码)和尾数两部分组成,其机内表示形式如下:
阶码用来指示尾数中的小数点应当向左或向右移动的位数;尾数表示数值的有效数字,
其小数点约定在数符和尾数之间,在浮点数中数符和阶符各占一位,阶码的值随浮点数数值
的大小而定,尾数的位数则依浮点数数的精度要求而定。
1.2.5 常见的信息编码
前面,我们已介绍过,计算机中的数据是用二进制表示的,而人们习惯用十进制数,那
么输入输出时,数据就要进行十进制和二进制之间的转换处理,因此,必须采用一种编码的
方法,由计算机自己来承担这种识别和转换工作。
1.B C D码(二-十进制编码)
BCD(Binary Code Decimal)码是用若干个二进制数表示一个十进制数的编码, B C D码有多
种编码方法,常用的有8 4 2 1码。表1 - 2是十进制数0~9的8 4 2 1编码表。
表1-2 十进制数与B C D码的对照表
十进制数8 4 2 1码十进制数8 4 2 1码
0 0 0 0 0 1 0 0 0 0 1 0 0 0 0
1 0 0 0 1 11 0 0 0 1 0 0 0 1
2 0 0 1 0 1 2 0 0 0 1 0 0 1 0
3 0 0 11 1 3 0 0 0 1 0 0 11
4 0 1 0 0 1 4 0 0 0 1 0 1 0 0
5 0 1 0 1 1 5 0 0 0 1 0 1 0 1
6 0 11 0 1 6 0 0 0 1 0 11 0
7 0 111 1 7 0 0 0 1 0 111
8 1 0 0 0 1 8 0 0 0 1 1 0 0 0
9 1 0 0 1 1 9 0 0 0 1 1 0 0 1
8 4 2 1码是将十进制数码0~9中的每个数分别用4位二进制编码表示,从左至右每一位对应

的数是8、4、2、1,这种编码方法比较直观、简要,对于多位数,只须将它的每一位数字按
表1-2 中所列的对应关系用8 4 2 1码直接列出即可。例如,十进制数转换成B C D码如下:
( 1 2 0 9 . 5 6 )1 0 =(0001 0010 0000 1001.0101 011 0 )B C D
8 4 2 1码与二进制之间的转换不是直接的,要先将8 4 2 1码表示的数转换成十进制数,再将
十进制数转换成二进制数。例如:
(1001 0010 0011 . 0 1 0 1 )B C D=( 9 2 3 . 5 )1 0=( 111 0 0 11 0 11 . 1 )2
2. A S C I I码
计算机中,对非数值的文字和其他符号进行处理时,要对文字和符号进行数字化处理,
即用二进制编码来表示文字和符号。字符编码(Character Code)是用二进制编码来表示字母、
数字以及专门符号。
在计算机系统中,有两种重要的字符编码方式: A S C I I和E B C D I C。E B C D I C主要用于
I B M的大型主机,A S C I I用于微型机与小型机。下面我们简要介绍A S C I I码。
目前计算机中普遍采用的是ASCII(American Standard Code for Information Interchange)
码,即美国信息交换标准代码。A S C I I码有7位版本和8位版本两种,国际上通用的是7位版本,
7位版本的A S C I I码有1 2 8个元素,只需用7个二进制位( 27=1 2 8 )表示,其中控制字符3 4个,阿
拉伯数字1 0个,大小写英文字母5 2个,各种标点符号和运算符号3 2个。在计算机中实际用8位
表示一个字符,最高位为“ 0”。附录A列出了全部1 2 8个符号的A S C I I码。例如,数字0的
A S C I I码为4 8,大写英文字母A的A S C I I码为6 5,空格的A S C I I码为3 2等等。有的计算机教材
中的A S C I I码用1 6进制数表示,这样,数字0的A S C I I码为3 0 H,字母A的A S C I I为4 1 H,⋯⋯
E B C D I C (扩展的二-十进制交换码)是西文字符的另一种编码,采用8位二进制表示,共
有2 5 6种不同的编码,可表示2 5 6个字符,在某些计算机中也常使用。
3. 汉字编码
汉字也是字符,与西文字符比较,汉字数量大,字形复杂,同音字多,这就给汉字在计
算机内部的存储、传输、交换、输入、输出等带来了一系列的问题。为了能直接使用西文标
准键盘输入汉字,必须为汉字设计相应的编码,以适应计算机处理汉字的需要。
(1) 国标码
1 9 8 0年我国颁布了《信息交换用汉字编码字符集·基本集》代号为( G B 2 3 1 2-8 0 ),是国
家规定的用于汉字信息处理使用的代码依据,这种编码称为国标码。在国标码的字符集中共
收录了6 7 6 3个常用汉字和6 8 2个非汉字字符(图形、符号),其中一级汉字3 7 5 5个,以汉语拼音
为序排列,二级汉字3 0 0 8个,以偏旁部首进行排列。
国标G B 2 3 1 2-8 0规定,所有的国标汉字与符号组成一个9 4×9 4的矩阵,在此方阵中,每
一行称为一个“区” (区号为0 1~9 4 ),每一列称为一个“位” (位号为0 1~9 4 ),该方阵实际组
成了一个9 4个区,每个区内有9 4个位的汉字字符集,每一个汉字或符号在码表中都有一个唯
一的位置编码,叫该字符的区位码。
使用区位码方法输入汉字时,必须先在表中查找汉字并找出对应的代码,才能输入。区
位码输入汉字的优点是无重码,而且输入码与内部编码的转换方便。
(2) 机内码
汉字的机内码是计算机系统内部对汉字进行存储、处理、传输统一使用的代码,又称为汉
字内码。由于汉字数量多,一般用2个字节来存放汉字的内码。在计算机内汉字字符必须与英

文字符区别开,以免造成混乱。英文字符的机内码是用一个字节来存放A S C I I码,一个A S C I I
码占一个字节的低7位,最高位为“0”,为了区分,汉字机内码中两个字节的最高位均置“ 1”。
例如,汉字“中”的国标码为5 6 5 0 H ( 0 1 0 1 0 110 01010000)2 ,机内码为D 6 D 0 H ( 11 0 1 0 11 0
11 0 1 0 0 0 0 )2 。
(3) 汉字的字形码
每一个汉字的字形都必须预先存放在计算机内,例如G B 2 3 1 2国标汉字字符集的所有字符
的形状描述信息集合在一起,称为字形信息库,简称字库。通常分为点阵字库和矢量字库。目
前汉字字形的产生方式大多是用点阵方式形成汉字,即是用点阵表示的汉字字形代码。根据汉
字输出精度的要求,有不同密度点阵。汉字字形点阵有1 6×1 6点阵、2 4×2 4点阵、3 2×3 2点阵
等。汉字字形点阵中每个点的信息用一位二进制码来表示,“1”表示对应位置处是黑点,“0”
表示对应位置处是空白。字形点阵的信息量很大,所占存储空间也很大,例如1 6×1 6点阵,每
个汉字就要占3 2个字节( 1 6×1 6÷8=3 2 );2 4×2 4点阵的字形码需要用7 2字节( 2 4×2 4÷8=7 2 ),
因此字形点阵只能用来构成“字库”,而不能用来替代机内码用于机内存储。字库中存储了每
个汉字的字形点阵代码,不同的字体(如宋体、仿宋、楷体、黑体等)对应着不同的字库。在输
出汉字时,计算机要先到字库中去找到它的字形描述信息,然后再把字形送去输出。

 

打印本文   加入收藏   返回顶部   关闭窗口Tags:计算机常用的数制及编码  
  • 上一篇:计算机概论
  • 下一篇:没有了
  • 相关文章列表
    • 没有文章
    参与评论
    共有评论 0网友评论列表
    CopyRight © 2009-2012 计算机基础知识 Inc.All Rights Reserved. 备案:苏ICP备09028880号