计算机中的数制与编码.docx
- 文档编号:18304057
- 上传时间:2023-08-15
- 格式:DOCX
- 页数:17
- 大小:23.43KB
计算机中的数制与编码.docx
《计算机中的数制与编码.docx》由会员分享,可在线阅读,更多相关《计算机中的数制与编码.docx(17页珍藏版)》请在冰点文库上搜索。
计算机中的数制与编码
计算机中的数制与编码
一、数制
1、什么是进位计数制
数制也称计数制,是指用一组固定的符号和统一的规则来表示数值的方法。
按进位的原则进行计数的方法,称为进位计数制。
比如,在十进位计数制中,是按照“逢十进一”的原则进行计数的。
常用进位计数制:
a、十位制(Decimalnotation);
b、二进制(Binarynotation);
c、八进制(Octalnotation);
d、十六进制数(Hexdecimalnotation)
2、进位计数制的基数与位权
"基数"和"位权"是进位计数制的两个要素。
(1)基数:
所谓基数,就是进位计数制的每位数上可能有的数码的个数。
例如,十进制数每位上的数码,有"0"、"1"、"3",…,"9"十个数码,所以基数为10。
(2)位权:
所谓位权,是指一个数值的每一位上的数字的权值的大小。
例如十进制数4567从低位到高位的位权分别为100、101、102、103。
因为:
4567=4x103+5x102+6x101+7x100
(3)数的位权表示:
任何一种数制的数都可以表示成按位权展开的多项式之和。
比如:
十进制数的435.05可表示为:
435.05=4x102+3x101+5x100+0x10-1+5x10-2
位权表示法的特点是:
每一项=某位上的数字X基数的若干幂次;而幂次的大小由该数字所在的位置决定。
3、二进制数
计算机中为何采用二进制:
二进制运算简单、电路简单可靠、逻辑性强
(1)定义:
按“逢二进一”的原则进行计数,称为二进制数,即每位上计满2时向高位进一。
(2)特点:
每个数的数位上只能是0,1两个数字;二进制数中最大数字是1,最小数字是0;基数为2;
比如:
10011010与00101011是两个二进制数。
(3)二进制数的位权表示:
(1101.101)2=1x23+1x22+0x21+1x20+1x2-1+0x2-2+1x2-3
(4)二进制数的运算规则
1加法运算
①0+0=0③1+1=10
②0+1=1+0=1
2乘法运算
①0×0=0③1×1=1
②0×1=1×0=0
4、八进位制数
(1)定义:
按“逢八进一”的原则进行计数,称为八进制数,即每位上计满8时向高位进一。
(2)特点:
每个数的数位上只能是0、1、2、3、4、5、6、7八个数字;八进制数中最大数字是7,最小数字是0;基数为8;
比如:
(1347)8与(62435)8是两个八进制数。
(3)八进制数的位权表示:
(107.13)8=1x82+0x81+7x80+1x8-1+3x8-2
5、十六进制数
1)定义:
按“逢十六进一”的原则进行计数,称为十六进制数,即每位上计满16时向高位进一。
(2)特点:
每个数的数位上只能是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F十六个数码;十六进制数中最大数字是F,即15,最小数字是0;基数为16;
比如:
(109)16与(2FDE)16是两个十六进制数。
(3)十六进制数的位权表示:
(109.13)16=1x162+0x161+9x160+1x16-1+3x16-2
(2FDE)16=2x163+15x162+13x161+14x160
6、常用计数制间的对应关系
十进制 二进制 八进制 十六进制
0 0 0 0
1 1 1 1
2 10 2 2
4 100 4 4
8 1000 10 8
10 1010 12 A
15 1111 17 F
16 10000 20 10
7、数制间的转换
(一)、十进制数转换成非十进制数
1、十进制整数转换成非十进制整数
a、为什么要进行数制间的转换?
将数由一种数制转换成另一种数制称为数制间的转换。
因为日常生活中经常使用的是十进制数,而在计算机中采用的是二进制数。
所以在使用计算机时就必须把输入的十进制数换算成计算机所能够接受的二进制数。
计算机在运行结束后,再把二进制数换算成人们所习惯的十进制数输出。
这两个换算过程完全由计算机自动完成。
b、转换方法
十进制整数化为非十进制整数采用“余数法”,即除基数取余数。
把十进制整数逐次用任意十制数的基数去除,一直到商是0为止,然后将所得到的余数由下而上排列即可。
2、十进制小数转换成非十进制小数转换方法
十进制小数转换成非十进制小数采用“进位法”,即乘基数取整数。
把十进制小数不断的用其它进制的基数去乘,直到小数的当前值等于0或满足所要求的精度为止,最后所得到的积的整数部分由上而下排列即为所求。
二、非十进制数转换成十进制数
转换方法
非十进制数转换成十制数采用“位权法”,即把各非十进制数按位权展开,然后求和。
三、二、八、十进制数之间转换
1、二进制数与八进制数之间的转换转换方法
a、把二进制数转换为八进制数时,按“三位并一位”的方法进行。
以小数点为界,将整数部分从右向左每三位一组,最高位不足三位时,添0补足三位;小数部分从左向右,每三位一组,最低有效位不足三位时,添0补足三位。
然后,将各组的三位二进制数按权展开后相加,得到一位八进制数。
b、将八进制数转换成二进数时,采用“一位拆三位”的方法进行。
即把八进制数每位上的数用相应的三位二进制数表示。
2、二进制数与十六进制数之间的转换转换方法
a、把二进制数转换为十六进制数时,按“四位并一位”的方法进行。
以小数点为界,将整数部分从右向左每四位一组,最高位不足四位时,添0补足四位;小数部分从左向右,每四位一组最低有效位不足四位时,添0补足四位。
然后,将各组的四位二进制数按权展开后相加,得到一位十六进制数。
b、将十六进制数转换成二进数时,采用“一位拆四位”的方法进行。
即把十六进制数每位上的数用相应的四位二进制数表示。
二、计算机中数的表示
计算机既可以处理数字信息和文字信息,也可以处理图形、声音、图像等信息。
然而,由于计算机中采用二进制,所以这些信息在计算机内部必须以二进制编码的形式表示。
也就是说,一切输入到计算机中的数据都是由0和1两个数字进行组合的。
问题:
这些数值、文字、字符或图形是如何用二进制编码进行组合呢?
1、机器数与真值
a、机器数
数学中正数与负数是用该数的绝对值,加上正、负符号来表示。
由于计算机中无论是数值还是数的符号,都只能用0和1来表示。
所以计算机中,为了表示正、负数,把一个数的最高位作为符号位:
0表示正数,1表示负数。
比如,如果用八个二进制位表示一个十进制数,则正的36和负的36可表示为:
+36---->00100100
-36---->10100100
这种连同符号位一起数字化了的数称为机器数
b、真值
由机器数所表示的实际值称为真值。
比如:
机器数00101011的真值为:
十进制的+43或二进制的+0101011
机器数1010011的真值为:
十进制的-43或二进制的-0101011
2、机器数的表示方法
a、原码
1、定义:
正数的符号位用0表示,负数的符号位用1表示,数值部分用二进制形式表示,称为该数的原码。
比如:
则
X=+81(X)原=01010001
Y=-81(Y)原=11010001
符号位数值
2、用原码表示一个数简单、直观、方便。
但不能用它对两个同号数相减或两个异号数相加。
比如:
将十进制数“+36”与“-45”的原码直接相加:
X=+36(X)原=00100100
Y=-45(Y)原=10101101
而
00100100……(+36)10+)10101101……(-45)10
11010001……(-81)10
这显然是不对的。
b、反码
定义:
正数的反码和原码相同,负数的反码是对该数的原码除符号位外各位取反,即“0”变“1”,“1”变“0”。
例如:
X=+81,Y=-81
X)原=01010001(X)反=01010001
Y)原=11010001(Y)反=10101110
符号位数值 符号位数值
c、补码
1、定义:
正数的补码与原码相同,负数的补码是对该数的原码除符号外各位取反,然后加1,即反码加1。
比如:
X=+81,Y=-81(X)原=(X)反=(X)补=01010001
(Y)原=11010001
(Y)反=10101110
(Y)补=10101111
2、计算机中,加减法基本上都采用补码进行运算,并且加减法运算都可以用加法来实现。
比如:
计算十进制数:
36-45,可写成:
36+(-45),即
(36)10-(45)10=(36)10+(-45)10
(36)原=(36)反=(36)补
=00100100
(-45)原=10101101
(-45)反=11010010
(-45)补=11010011
而
00100100……(+36)10
+)11010011……(-45)10
11110111……(-9)10
结果正确。
三、字符编码
所谓字符编码就是规定用怎样的二进制编码来表示文字和符号。
它主要有以下几种:
1、BCD码(二--十进制码);2、ASCII码;3、汉字编码。
1、BCD码(二--十进制码):
把十进制数的每一位分别写成二进制数形式的编码,称为二--十进制编码或BCD编码。
BCD编码方法很多,但常用的是8421编码:
它采用4位二进制数表示1位十进制数,即每一位十进制数用四位二进制表示。
这4位二进制数各位权由高到低分别是23、22、21、20,即8、4、2、1。
这种编码最自然,最简单,且书写方便、直观、易于识别。
比如:
十进制数1998的8421码为:
0001100110011000
十进制:
1998
8421码:
0001100110011000
位权:
8421842184218421
思考:
1、一个十进数的BCD码如何转换成十进制数?
2、一个十进制数的BCD码是该数的二进制数吗?
3、一个十进制数的BCD码与二进制数之间如何相互转换?
2、ASCII码
ASCII码是计算机系统中使用得最广泛的一种编码(读作阿斯克伊码)。
ASCII码虽然是美国国家标准,但它已被国际标准化组织(ISO)认定为国际标准。
ASCII码已为世界公认,并在世界范围内通用。
ASCII码有7位版本和8位版本两种。
国际上通用的是7位版本。
7位版本的ASCII码有128个元素,其中通用控制字符34个,阿拉伯数字10个,大、小写英文字母52个,各种标点符号和运算符号32个。
比如:
“A”的ASCII码值为:
1000001,即十进制的65;“a”的ASCII码值为:
1100001,即十进制的97;“0”的ASCII码值为:
0110000,即十进制的48。
3、汉字编码
我国用户在使用计算机进行信息处理时,都要用到汉字:
汉字的输入,输出以及汉字处理。
这就需要对汉字进行编码。
通常汉字有两种编码:
国标码和机内码。
a、国标码
计算机处理汉字所用的编码标准是我国于1980年颁布的国家标准(GB2312-80),是国家规定的用于汉字编码的依据,简称国标码。
国标码规定:
用两个字节表示一个汉字字符。
在国标码中共收录汉字和图形符号7445个。
国标码本身也是一种汉字输入码。
通常称为区位输入法。
b、机内码
机内码是指在计算机中表示一个汉字的编码。
机内码是一种机器内部的编码,其主要作用是作为汉字信息交换码使用:
将不同系统使用的不同编码统一转换成国标码,使不同的系统之间的汉字信息进行交换。
正是由于机内码的存在,输入汉字时就允许用户根据自己的习惯使用不同的汉字输入法,比如:
五笔字型、自然码、智能拼音等,进入系统后再统一转换成机内码存储。
(4)汉字编码
西文是拼音文字,基本符号比较少,编码比较容易,因此,在一个计算机系统中,输入、内部处理、存储和输出都可以使用同一代码。
汉字种类繁多,编码比拼音文字困难,因此在不同的场合要使用不同的编码。
通常有4种类型的编码,即输入码、国标码、内码、字形码。
①输入码
输入码所解决的问题是如何使用西文标准键盘把汉字输入到计算机内。
有各种不同的输入码,主要可以分为三类:
数字编码、拼音编码和字编型码。
● 数字编码。
就是用数字串代表一个汉字,常用的是国标区位码。
它将国家标准局公布的6763个两级汉字分成94个区,每个区分94位。
实际上是把汉字表示成二维数组,区码、位码各用两位十进制数表示,输入一个汉字需要按4次键。
数字编码是惟一的,但很难记住。
比如“中”字,它的区位码以十进制表示为5448(54是区码,48是位码),以十六进制表示为3630(36是区码,30是位码)。
以十六进制表示的区位码不是用来输入汉字的。
● 拼音编码。
是以汉字读音为基础的输入方法。
由于汉字同音字太多,输入后一般要进行选择,影响了输入速度。
● 字型编码。
是以汉字的形状确定的编码,即按汉字的笔画部件用字母或数字进行编码。
如五笔字型、表形码,便属此类编码,其难点在于如何拆分一个汉字。
②国标码
又称为汉字交换码,在计算机之间交换信息用。
用两个字节来表示,每个字节的最高位均为0,因此可以表示的汉字数为214=16384个。
将汉字区位码的高位字节、低位字节各加十进制数32(即十六进制数的20),便得到国标码。
例如“中”字的国标码为8680(十进制)或7468(十六进制)。
这就是国家标准局规定的GB2312—80信息交换用汉字编码集。
③内码
汉字内码是在设备和信息处理系统内部存储、处理、传输汉字用的代码。
无论使用何种输入码,进入计算机后就立即被转换为机内码。
规则是将国标码的高位字节、低位字节各自加上128
为了统一表示世界各国的文字,1993年国际标准化组织公布了“通用多八位编码字符集”的国际标准ISO/IEC10646,简称UCS(UniversalCodeSet),它为包括汉字在内的各种正在使用的文字规定了统一的编码方法。
该标准使用4个字节来表示一个字符。
其中,一个字节用来编码组,因为最高位不用,故总共表示128个组。
一个字节编码平面,总共有256个平面,这样,每一组都包含256个平面。
在一个平面内,用一个字节来编码行,因而总共有256行。
再用一个字节来编码字位,故总共有256个字位。
一个字符就被安排在这个编码空间的一个字位上。
例如ASCII字符“A”,它的ASCII为41H,而在UCS中的编码则为00000041H,即位于00组、00面、00行的第41H字位上。
又如汉字“大”,它在GB2312中的编码为3473H,而在UCS中的编码则为00005927H,即在00组、00面、59H行的第27H字位上。
4个字节的编码足以包容世界上所有的字符,同时也符合现代处理系统的体系结构。
④字形码
表示汉字字形的字模数据,因此也称为字模码,是汉字的输出形式。
通常用点阵、矢量函数等表示。
用点阵表示时,字形码指的就是这个汉字字形点阵的代码。
根据输出汉字的要求不同,点阵的多少也不同。
简易型汉字为16´16点阵、提高型汉字为24´24点阵、48´48点阵等。
现在我们以24´24点阵为例来说明一个汉字字形码所要占用的内存空间。
因为每行24个点就是24个二进制位,存储一行代码需要3个字节。
那么,24行共占用3´24=72个字节。
计算公式:
每行点数/8´行数。
依此,对于48´48的点阵,一个汉字字形需要占用的存储空间为48/8´48=6´48=288个字节。
(十进制)或80(十六进制)。
例如,“中”字的内码以十六进制表示时应为F4E8。
这样做的目的是使汉字内码区别于西文的ASCII,因为每个西文字母的ASCII的高位均为0,而汉字内码的每个字节的高位均为1。
1.1计算机中的数制及数的转换
1.1.1计算机中的数制
1.十进制
十进制共有0、1、2、3、4、5、6、7、8、9十个数字符号,这十个数字符号又称为“数码”。
在数学上,数制中数码的个数定义为基数,故十进制的基数为10。
任何一个十进制数都可以展开成幂级数形式。
例如:
123.45=1*10^2+2*10^1+3*10^0+4*10^(-1)+5*10^(-2) [注:
此处用^表示指数]
10^2、10^1、10^0、10^(-1)、10^(-2)称为权,10为它的基数。
整数部分中每位的幂是该位位数减1,小数部分中每位的幂是该位小数的位数。
2.二进制
二进制的特点:
共有0和1两个数码;基数为2,逢2进1。
二进制数也可以展开成幂级数形式。
例如:
10110.11=1*2^4+0*2^3+1*2^2+1*2^1+0*2^0+1*2^(-1)+1*2^(-2)=22.75
2^4到2^(-2)为权。
整数部分中每位的幂是该位位数减1,小数部分中每位的幂是该位小数的位数。
3.十六进制
十六进制是人们学习和研究计算机中二进制数的一种工具。
十六进制的数码:
0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。
基数为16,逢16进1。
展开成幂级数形式:
70F.B1H=7*16^2+0*16^1+F*16^0+B*16(-1)+1*16^(-2)=1807.6914
[注:
70F.B1H中最后一位的H表示这是一个十六进制数]
表1-1部分十进制、二进制和十六进制数对照表
整数部分 小数部分
十进制 二进制 十六进制 十进制 二进制 十六进制
0 0000 0 0 0 0
1 0001 1 0.5 0.1 0.8
2 0010 2 0.25 0.01 0.4
3 0011 3 0.125 0.001 0.2
4 0100 4 0.0625 0.0001 0.1
5 0101 5 0.03125 0.00001 0.08
6 0110 6 0.015625 0.000001 0.04
7 0111 7
8 1000 8
9 1001 9
10 1010 A
11 1011 B
12 1100 C
13 1101 D
14 1110 E
15 1111 F
16 10000 10
计算机内部采用二进制的原因:
二进制只有0和1两个数码,采用晶体管的导通和截止、脉冲的高电平和低电平都很容易表示它;二进制数运算简单,便于用电子线路实现。
采用十六进制可以大大减轻阅读和书写二进制数的负担。
例如:
11011011=DBH 1001001111110010B=93F2H
[注:
最后一位的B表示这是一个二进制数]
可见十六进制数很简短。
数的两种标记方法:
一种是把数加上方括号,在方括号右下角标注数制代号;另一种,在数的后面加英文字母标记,分别用B、D、H大写字母表示二进制、十进制、十六进制,十进制的D标记可以省略。
1.1.2数制间数的转换
1.二进制数和十进制数间的转换
(1)二进制数转换成十进制数
只要把欲转换数按权展开后相加即可,也可以从小数点开始每四位一组按十六进制的权展开并相加。
例如:
11010.01B=1*2^4+1*2^3+1*2^1+1*2^(-2)=26.25
或者
11010.01B=1A.4H=1*16^1+10*16^0+4*16^(-1)=26.25
(1)十进制数转换成二进制数
a.十进制整数转换成二进制整数
除2取余法。
用2连续去除要转换的10进制数,直到商小于2为止,然后把余数按最后得到的为最高位、最早得到的为最低位,依次排列起来所得到的数便是所求的二进制数。
例:
求10进制数215的二进制数
先用2除215,商为107,余数为1;再用2除107,商为53,余数为1;再用2除53,商为26,余数为1;再用2除26,商为13,余数为0;再用2除13,商为6,余数为1;再用2除6,商为3,余数为0;再用2除3,商为1,余数为1;最后一次余数为1。
把余数排列得:
11010111B。
这就是所求的二进制数。
[注:
当商为1时,此时这个1是最后一位余数]
用算式表示如下:
2 |215| 1
2 |107| 1
2 |53| 1
2 |26| 0
2 |13| 1
2 |6 | 0
2 |3 | 1
|1 | 1 <==[这一位为最后一位余数]
b.十进制小数转换成二进制小数
乘2取整法。
用2连续去乘要转换的10进制小数,直到所得积的小数部分为0或满足所需精度为止,然后把各次整数按最先得到的为最高位、最后得到的为最低位,依次排列起来所得到的数便是所求的二进制小数。
例:
把十进制小数0.6879转换为二进制小数
0.6879
* 2
--------------
1.3758 取得整数1 最高位
0.3758
* 2
--------------
0.7516 取得整数0
* 2
--------------
1.5032 取得整数1
0.5032
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 中的 数制 编码