本站
非官方网站,信息完全免费,仅供参考,不收取任何费用,具体请以官网公布为准!
计算机中的数制与编码
计算机可用来处理各种形式的数据,这些数据可以是数字、字符或汉字,它们在计算机内部都是采用二进制数来表示的,本节介绍计算机使用的数制和常用编码。
1.2.1 计算机的数制
按进位的原则进行计数叫做进位计数制,简称数制。日常生活中大都采用十进制计数,计算机中的信息采用二进制数。计算机采用二进制的主要原因包括便于实现、运算简单、机器可靠性高与通用性强等。
一种数制有两个基本要素:基数和位权。下面介绍几种常用的数制。
1.十进制
主要特点:
(1)有十个数字符号:0,1,2,3,… ,9。
(2)计数规则为:逢十进一,借一当十。
2.二进制
主要特点:
(1)有两个不同的数字符号:0,1。
(2)计数规则为:逢二进一,借一当二。
3.八进制记数法
主要特点:
(1)有八个不同的数字符号: 0,1,2,……,6,7。
(2)进数规则为:逢八进一,借一当八。
4.十六进制记数法
主要特点:
(1)有十六个不同的数字符号:0,1,2,……,8,9,A,B,C,D,E,F 。
(2)进数规则为:逢十六进一,借一当十六。
一个十六进制数可以按基数展开为多项式(位权表示法)。
1.2.2 各类数制间的转换
不同的数制有不同的基数和位权,但它们表示的数值可以相互转换。下面就介绍几种常用的数制的转换方法。
1.R进制转换为十进制
根据位权的概念,R进制转换为十进制的方法为:展开多项式,各项相加。
2.十进制转换为R进制
由于人们通常不熟悉非十进制数的运算,所以将十进制数转换为R进制数,需要对整数和小数部分分别进行。
⑴整数
十进制整数转换为R进制整数的方法为:将十进制整数连续地整除以R,记下每次的余数,直到商为0,倒排余数即为对应的R进制整数。
⑵小数
十进制小数转换为R进制小数的方法为:将十进制小数连续地乘以R,记下每次的整数,直到十进制小数为0或满足精度为止。
3.二进制数与八进制数之间的转换
用三位二进制数表示一位八进制数的基本数字符号。如表1-2所示。
(1)二进制数转换为八进制数
方法:从小数点开始,向左或向右每三位为一组(不足三位用 0 补齐);将每组三位数用一位八进制数表示。
(2)八进制数转换为二进制数
方法:将每位八进制数用三位二进制数表示,去掉两端多余的0。
4.二进制数与十六进制数之间的转换
用四位二进制数表示一位十六进制数的基本数字符号。如表1-3所示。
(1)二进制数转换为十六进制数
方法:从小数点开始,向左或向右每四位为一组(不足四位用 0 补齐);将每组四位数用一位十六进制数表示。
(2)十六进制数转换为二进制数
方法:将每位十六进制数用四位二进制数表示,去掉两端多的零
1.2.3 数值数据的编码
计算机中数的正负号也是用二进制数表示的。通常,数的符号用最高位表示,正号和负号分别用0和1表示。将符号数字化后的数被称为机器数,而用正负号(即+和-)表示的数被称为真值。为讲解方便,除非特殊说明,以后讲解中机器数都用一个字节(即8位)表示。比如在后面将要叙述的原码中,真值+110(二进制)对应的机器数为00000110,真值-110对应的机器数为10000110。
1.定点数与浮点数
在计算机中,小数点并不占据任何二进制位,其位置是通过约定实现的。若将小数点的位置约定在机器数的末段,该机器数就是定点整数;若将小数点的位置约定在符号位的右侧,该机器数就是定点小数。
与定点数相比,浮点数具有表示范围大、精度高的优点。
阶符是阶码的符号位,数符是尾数的符号位。
2.原码、反码与补码
下面叙述常用的原码、反码和补码。
(1)原码
正数(含0)的符号位为0,负数(含0)的符号位为1,数值部分为对应数的绝对值,该表示法即为原码。
(2)反码
正数(含0)的反码与原码一样,将负数(含0)原码除符号位外每位变反即可得到反码。
(3)补码
正数(含0)的补码与原码一样,将负数的反码末位加1即可得到对应的补码。表1-4和表1-5分别列出了4位定点整数和定点小数的补码、原码、反码以及十进制数的对应关系。
第一章视频7.mp4
补码加减法运算非常方便,符号位可以像数值一样直接参见运算,因为补码有如下性质:
[[X]补]求补 =[-X]补
[X+Y]补 = [X]补 + [Y]补
[X-Y]补= [X]补 + [-Y]补 = [X]补 + [[Y]补]求补
求补是指包括符号位在内,每位变反,末位加1。对某个数的补码求补即可得到该数相反数的补码。
采用补码表示时,符号位可以像数值一样参加运算,并且运算器只要具有加法和求反的功能即可实现减法运算,进而实现乘法和除法运算(因为乘法可以通过加法实现,而除法可以通过减法实现)。
第一章视频8(知识点9.2).wmv
3.规格化浮点数
为了提高数的存储精度,应该通过移动小数点的位置使得尾数的绝对值最大。本书阶码采用定点整数补码,尾数采用定点小数补码。对于正数而言,规格化的过程就是将小数点移到数值部分第一个1的左侧,对于负数而言却是将小数点移到数值部分第一个0的左侧。
4.BCD码
为了在计算机内处理十进制数,可以用二进制编码来表示十进制数字,称为二—十进制码,即BCD码(Binary Coded Decimal)。
1.2.4 字符的编码
计算机中的字符也是用二进制编码表示的,下面介绍常见的ASCII码和Unicode编码。
1.ASCII码
ASCII码英文全称America Standard Code for Information Interchange,中文意思:美国标准信息交换码。它已被国际标准化组织(ISO)定为国际标准,称为ISO646标准。适用于所有拉丁文字字母,ASCII码有7位码和8位码两种形式。ASCII码于1968年提出,用于在不同计算机硬件和软件系统中实现数据传输标准化,在大多数的小型机和全部的个人计算机都使用此码。
2.Unicode编码
因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),0 - 255被用来表示大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母A的编码是65,小写字母z的编码是122。
1.2.5 汉字的编码
ACSII码只对英文字母、数字和标点符号进行编码。为了在计算机内表示汉字,用计算机处理汉字,同样也需要对汉字进行编码。计算机对汉字信息的处理过程实际上是各种汉字编码间的转换过程。
汉字的输入、转换和存储方法与西文相似,但由于汉字数量多,不能由西文键盘直接输入,所以必须先把它们分别用以下编码转换后存放到计算机中再进行处理操作。
(1)国标码(也称交换码)
计算机处理汉字所用的编码标准是我国于1980年颁布的国家标准GB2312—80《中华人民共和国国家标准信息交换汉字编码》,简称国标码。在国标码表中,共收录了一、二级汉字和图形符号7445个。其中,图形符号682个,分布在1—15区;一级汉字(常用汉字)3755个,按汉语拼音字母顺序排列,分布在16~55区;二级汉字(不常用汉字)3 008个,按偏旁部首排列,分布在56~87区;88区以后为空白区,以待扩展。每个汉字及特殊字符以两个字节的十六进制数值表示。
(2)机外码(也称输入码)
机外码是指操作人员通过西文键盘输入的汉字信息编码。它由键盘上的字母(如汉语拼音或五笔字型的笔画部件)、数字及特殊符号组合构成。典型的输入码有郑码输入法、五笔字型输入法、全拼输入法、双拼输入法、微软拼音输入法、紫光拼音输入法、区位码、自然码、智能ABC输入法等,是用户与计算机汉字交流的第一接口。
(3)机内码(也称内码)
机内码是指计算机内部存储、处理加工汉字时所用的代码。输入码通过键盘被接受后就由汉字操作系统的“输入码转换模块”转换为机内码,每个汉字的机内码用2个字节的二进制数表示。为了与ASCII码相区别,通常将其最高位置为1,大约可表示16 000多个汉字。虽然某一个汉字在用不同的汉字输入方法时其外码各不相同,但其内码基本是统一的。
(4)字形码
字形码是指文字信息的输出编码。计算机对各种文字信息的二进制编码处理后,必须通过字形输出码转换为人能看懂且能表示为各种字型字体的文字格式,即字形码,然后通过输出设备输出。
这种字形码采用点阵形式,不论一个字的笔画是多少,都可以用一组点阵表示。每个点即二进制的一个位,由“0”和“1”表示不同状态,如明、暗或不同颜色等特征表现字的型和体。所有字形码的集合构成的字符集称为字库。根据输出字符的要求不同,字符点的多少也不同。点阵越大、点数越多,分辨率就越高,输出的字形也就越清晰美观。汉字字型有16×16、24×24、32×32、48×48、128×128点阵等,不同字体的汉字需要不同的字库。点阵字库存储在文字发生器或字模存储器中。字模点阵的信息量是很大的,所占存储空间也很大。以16×16点阵为例,每个汉字就要占用32个字节。
注意,计算机文字信息的加工处理,主要采用对其二进制编码的逻辑运算,即将对文字信息的编辑、排版、查找、复制、传输等操作转化为与、或、非、异或、移位、分离、合并、比较等逻辑运算。
学习文档 http://news.lazyedu.cn/doc/