1.2 实训1:数制和信息编码

在计算机内部,信息都是采用二进制的形式进行存储、运算、处理和传输的。数制是人们用一组统一规定的符号和规则来表示数的方法。本节的主要任务是了解数制之间的相互转换方法,能够利用计算器进行数制之间的计算,了解信息编码的相关知识。

1.2.1 实训目标

· 了解数制的概念;

· 掌握几种常用数制的转换方法;

· 能够用计算器进行计算;

· 了解常见的信息编码。

1.2.2 实训步骤

· 将1024D转换成二进制数;

· 将10010.011转换成十进制数;

· 将32CF.4BH转换成十进制数;

· 将173O转换成二进制数;

· 了解ASCII码表和信息存储单位。

1.2.3 实训提示

1.2.3.1 数制的概念

数制(Number System)又称计数法,是人们用一组统一规定的符号和规则来表示数的方法。计数法通常使用的是进位计数制,即按进位的规则进行计数。在进位计数制中有“基数”和“位权”两个基本概念。

基数(Radix)是进位计数制中所用的数字符号的个数。例如,十进制的基数为10,逢十进一;二进制的基数为2,逢二进一。

在进位计数制中,把基数的若干次幂称为位权。幂的方次随该位数字所在的位置而变化,整数部分从最低位开始,依次为0,1,2,3,4,……;小数部分从最高位开始依次为-1,-2,-3,-4,……。

例如,十进制数1234.567可以写成:

1234.567=1×103+2×102+3×101+4×100+5×10-1+6×10-2+7×10-3

在计算机内部,信息都是采用二进制的形式进行存储、运算、处理和传输的。采用二进制编码在当初计算机设计时便有可行性、可靠性、简易性、逻辑性的优点。二进制的运算法则非常简单,例如:

1.2.3.2 不同数制间的转换

1.几种常用的数制

日常生活中人们习惯使用十进制,有时也使用其他进制。例如,计算时间采用六十进制, 1小时为60分钟,1分钟为60秒;在计算机科学中经常涉及二进制、八进制、十进制和十六进制等;但在计算机内部,不管什么类型的数据都使用二进制编码的形式来表示。下面介绍几种常用的数制:二进制、八进制、十进制和十六进制。

1)常用数制的特点

表1-1列出了几种常用数制的特点。

表1-1 常用数制的特点

2)常用数制的对应关系

常用数制的对应关系如表1-2所示。

表1-2 常用数制的对应关系

3)常用数制的书写规则

为了区分不同数制的数,常采用以下两种方法进行标识。

(1)字母后缀。

① 二进制数用B(Binary)表示。

② 八进制数用O(Octonary)表示。为了避免与数字0混淆,字母O常用Q代替。

③ 十进制数用D(Decimal)表示。十进制数的后缀D一般可以省略。

④ 十六进制数用H(Hexadecimal)表示。

例如,10011B、237Q、8079和45ABFH分别表示二进制数、八进制数、十进制数和十六进制数。

(2)括号外面加下标。例如,(10011)2、(237)8、(8079)10和(45ABFH)16分别表示二进制数、八进制数、十进制数和十六进制数。

2.常用数制间的转换

1)将r进制数转换为十进制数

r进制数(如二进制数、八进制数和十六进制数等)按位权展开并求和,便可得到等值的十进制数。

例如,将(10010.011)2转换为十进制数:

将(22.3)8转换为十进制数:

将(32CF.4B)16转换为十进制数:

2)将十进制数转换为r进制数

将十进制数转换为r进制数(如二进制数、八进制数和十六进制数等)的方法如下:

整数的转换采用“除以r取余”法,将待转换的十进制数连续除以r,直到商为0,每次得到的余数按相反的次序(即第一次除以r所得到的余数排在最低位,最后一次除以r所得到的余数排在最高位)排列起来,就是相应的r进制数。

小数的转换采用“乘以r取整”法,将被转换的十进制纯小数反复乘以r。每次相乘后乘积的整数部分若为1,则r进制数的相应位为1;若整数部分为0,则相应位为0。由高位向低位逐次进行,直到剩下的纯小数部分为0或达到所要求的精度为止。

对具有整数和小数两部分的十进制数,要用上述方法将其整数部分和小数部分分别进行转换,然后用小数点连接起来。

例如,将(18.38)10转换为二进制数。

先将整数部分“除以2取余”:

因此,(18)10=(10010)2

再将小数部分“乘以2取整”:

因此,(0.38)10=(0.01100)2

最后得出转换结果:(18.38)10=(10010.01100)2

3)八进制数、十六进制数与二进制数之间的转换

由于8=23,16=24,所以1位八进制数相当于3位二进制数,1位十六进制数相当于4位二进制数。

① 二进制数转换为八进制数或十六进制数。把二进制数转换为八进制数或十六进制数的方法是:以小数点为界向左和向右划分,小数点左边(整数部分)从右向左每3位(八进制)或每4位(十六进制)一组构成1位八进制数或十六进制数,位数不足3位或4位时最左边补0;小数点右边(小数部分)从左向右每3位(八进制)或每4位(十六进制)一组构成1位八进制数或十六进制数,位数不足3位或4位时最右边补0。

例如,将(10010.0111)2转换为八进制数:

因此,(10010.0111)2=(22.34)8

又如,将(10010.0111)2转换为十六进制数:

因此,(10010.0111)2=(12.7)16

② 八进制数或十六进制数转换为二进制数。把八进制数或十六进制数转换为二进制数的方法是:把1位八进制数用3位二进制数表示,把1位十六进制数用4位二进制数表示。

例如,将(22.34)8转换为二进制数:

因此,(22.34)8=(10010.0111)2

又如,将(12.7)16转换为二进制数:

因此,(12.7)16=(10010.0111)2

1.2.3.3 利用计算器进行数制之间的计算

利用Windows 7系统附件中安装的计算器,可以进行常用数制之间的转换计算。但是必须注意,计算器只能计算整数部分,不能计算小数部分。如果要计算小数,必须采用相应的转换方法。其操作步骤为:

(1)选择菜单命令“开始”→“所有程序”→“附件”→“计算器”,启动计算器。

(2)选择“查看”菜单的“程序员”命令,如图1-4所示。

(3)单击原来的数制。

(4)输入要转换的数字。

(5)单击要转换成的某种数制,即可进行不同数制之间的计算。

图1-4 计算器

1.2.3.4 信息存储单位

在计算机内部,信息都是采用二进制的形式进行存储、运算、处理和传输的。信息存储单位有位、字节和字等几种。

1.位

位(bit)是二进制数中的一个数位,可以是0或者1,是计算机中数据的最小单位。

2.字节

字节(byte,B)是计算机中数据的基本单位。例如,一个ASCII码用一个字节表示,一个汉字用两个字节表示。

1个字节由8个二进制位组成,即1 B=8 bit。比字节更大的数据单位有KB(kilobyte,千字节)、MB(megabyte,兆字节)、GB(gigabyte,吉字节)和TB(terabyte,太字节)。它们的换算关系如下:

1KB=1024B=210B

1MB=1024KB=210KB=220B=1024×1024B

1GB=1024MB=210MB=230B=1024×1024×1024B

1TB=1024GB=210GB=240B=1024×1024×1024×1024B

3.字

字(word)是计算机一次存取、运算、加工和传送的数据长度,是计算机处理信息的基本单位。1个字由若干字节组成,通常将组成1个字的位数称为字长。例如,1个字由4字节组成,则字长为32位。

字长(word length)是计算机性能的一个重要指标,是CPU一次能直接传输、处理的二进制数据位数。字长越长,计算机运算速度越快、精度越高,性能就越好。通常人们所说的多少位的计算机,就是指其字长是多少位的。常用的字长有8位、16位、32位、64位等,目前在PC中,主流的CPU都是64位的,128位的CPU也在研究之中。

1.2.3.5 常见的信息编码

计算机是用来处理数据的,任何形式的数据(数字、字符、汉字、图像、声音、视频)进入计算机都必须转换为0和1(二进制),即进行信息编码。在转换成二进制编码前,进入计算机的数据是以不同的信息编码形式存在,常见的有以下两种。

1.ASCII码

ASCII码(American Standard Code for Information Interchange,美国标准信息交换代码)由7位二进制数对字符进行编码,用0000000~1111111共27即128种不同的数码串分别表示常用的128个字符,其中包括10个数字、英文大小写字母各26个、32个标点和运算符号、34个控制符。这个编码已被国际标准化组织(ISO)批准为国际标准ISO-646,我国相应的国家标准为GB 1988。详细的ASCII码对照表可上网络搜索查阅。

2.汉字编码

计算机在处理汉字信息时,由于汉字字型比英文字符复杂得多,其偏旁部首等远不止128个,所以计算机处理汉字输入和输出时比处理英文复杂。计算机汉字处理过程的代码一般有四种形式,即汉字输入码、汉字交换码、汉字机内码和汉字字形码。例如,汉字输入码是为从键盘输入汉字而编制的汉字编码,也称汉字外部码,简称外码。汉字输入码的编码方法有数字码、字音码、字形码、混合编码四类,简单地说,有区位码输入、拼音输入、五笔输入等。不管采用哪种输入码输入,经转换后,同一个汉字将得到相同的内码。