微机原理与接口技术第1章 概述_第1页
微机原理与接口技术第1章 概述_第2页
微机原理与接口技术第1章 概述_第3页
微机原理与接口技术第1章 概述_第4页
微机原理与接口技术第1章 概述_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章概述1.1计算机的数制及其转换

1.2

计算机中数与字符的编码

1.3微型计算机系统组成1.4微型计算机的性能指标及分类1.5多媒体计算机1.1计算机中的数制及其转换

计算机内部的信息分为两大类:控制与状态信息数据信息

控制与状态信息:是一系列的控制命令,用于指挥计算机如何操作,也可能是一种检测信息;

数据信息:是计算机操作的对象,一般又可分为数值数据和非数值数据。数值数据用于表示数量的大小:整数,小数等非数值数据没有确定的数值:字符、汉字、逻辑数据。

信息的表示:基2码,即2进制形式

(1)基2码在物理上最容易实现。

(2)基2码用来表示二进制数,其编码、加减运算规则简单。

(3)基2码的两个符号“1”和“0”正好与逻辑数据“真”与“假”相对应,为计算机实现逻辑运算带来了方便。

1.1.1数与数制位置计数法(进位计数制):是一种计数的方法。同一个数字在不同的数位代表的数值不同,这种记数方法称为位置记数法。对每一个数位赋以不同的位值,称为“权”。基数:各种数制中数字符号的个数称为该数制的基数。数制:二进制、八进制、十进制、十六进制

表示方法:*二进制数(Binary)后缀加“B”,如:11010001B。*八进制数(Octonary)后缀加“O”或“Q ”,如:76Q。*十进制数(Decimal)后缀加“D”,如:25D或25。*十六进制数(Hexadecimal)后缀加“H”,如:9AH。

*十六进制数(Hexadecimal)后缀加“H”,如:0F6H

数的位权表示:十进制:(234.13)10=2×102+3×101+4×100+1×10-1+3×10-2

二进制:(101.11)2=1×22+0×21+1×20+1×2-1+1×2-2八进制:(124.36)8=1×82+2×81+4×80+3×8-1+6×8-2十六进制:(AC.B5)16=A×161+C×160+B×16-1+5×16-2其中为整数部分,为小数部分,r为基数。每一项的数字可用0~r-1数字中的一个数字来表示。位置计数通式:1.1.2不同数制之间的转换

1.十进制数与二进制数之间的转换

1)十进制整数转换成二进制整数

方法:除2取余数,结果倒序排列。

2)十进制小数转换成二进制小数

方法:乘2取整数,结果顺序排列。

【例1-1】将十进制数97转换成二进制数。其过程如下:最后结果为(97)10=(A6A5A4A3A2A1A0)2=(1100001)22972482242122623210余数为1,余数为0,余数为0,余数为0,余数为0,余数为1,余数为1,商为0,

即A0=1即A1=0即A2=0即A3=0即A4=0即A5=1即A6=1结束【例1-2】将十进制小数0.6875转换成二进制小数。其过程如下:0.6875×  21.3750 整数部分为1,即A-1=10.3750 余下的小数部分×20.7500 整数部分为0,即A-2=00.7500 余下的小数部分× 21.5000 整数部分为1,即A-3=10.5000 余下的小数部分× 21.0000 整数部分为1,即A-4=10.0000 余下的小数部分为0,结束最后结果为(0.6875)10=(0.A-1A-2A-3A-4)2=(0.1011)2

为了将一个既有整数又有小数部分的十进制数转换成二进制数,可以将其整数部分和小数部分分别进行转换,然后再组合起来。例如:(97)10=(1100001)2(0.6875)10=(0.1011)2由此可得:(97.6875)10=(1100001.1011)23)二进制数转换成十进制数方法:按位权展开后相加。【例1-3】将二进制数111.11转换成十进制数。其过程如下:(111.11)2=1×22+1×21+1×20+1×2-1+1×2-2 =4+2+1+0.5+0.25=(7.75)10

2.十进制与八进制之间的转换

1)十进制整数转换成八进制整数

方法:除8取余数,余数按倒序排列。

2)十进制小数转换成八进制小数方法:乘8取整法,所得整数按顺序排列。

3)八进制数转换成十进制数方法:按位权展开后相加

【例1-4】将十进制数97转换成八进制数。其过程如下:最后结果为(97)10=(A2A1A0)8=(141)8余数为1,余数为4,余数为1,即A0=1即A1=4即A2=1结束

89781281商为0商为0,

【例1-5】将十进制小数0.6875转换成八进制小数。其过程如下:

0.6875 ×8 5.5000 整数部分为5,即A-1=5 0.5000 余下的小数部分

×8 4.0000 整数部分为4,即A-2=4 0.0000 余下的小数部分为0,结束最后结果为(0.6875)10=(0.A-1A-2)8=(0.54)8同理,一个八进制数可分解成整数和小数部分,分别转换后合成即可。【例1-6】

将八进制数141.54转换成十进制数。其过程如下:

(141.54)8=1×82+4×81+1×80+5×8-1+4×8-2 =64+32+1+0.625+0.0625 =97.6875最后结果为

(141.54)8=(97.6875)103.十进制与十六进制之间的转换

1)十进制整数转换成十六进制整数

方法:除16取余数,余数按倒序排列。

2)十进制小数转换成十六进制小数

方法:乘16取整法,所得整数按顺序排列。

3)十六进制数转换成十进制数方法:按位权展开后相加。

【例1-7】将十进制数97转换成十六进制数。其过程如下:最后结果为(97)10=(A2A1A0)16=(61)16余数为1,余数为6,即A0=1即A1=6结束1697166商为0商为0,【例1-8】将十进制小数0.6875转换成十六进制小数。其过程如下:0.68751611.00000.0000整数部分为11,即A-1=B余下的小数部分为0,结束最后结果为(0.6875)10=(0.A-1)16=(0.B)16【例1-9】

将十六进制数61.B转换成十进制数。其过程如下:

(61.B)16 =6×161+1×160+B×16-1 =96+1+11×16-1 =97+0.6875 =97.6875最后结果为

(61.B)16=(97.6875)104.二进制与八进制、十六进制数之间的转换1)二进制数转换成八进制数

方法:以小数点为中心分别向左向右每三位一组进行划分,末尾不够3位补0,将每组变为八进制数即可。2)八进制数转换二进制数方法:将每一位八进制数分解成对应的三位二进制数。3)二进制数转换成十六进制数

方法:以小数点为中心分别向左向右每四位一组进行划分。末尾不够4位补0,将每组变为十六进制数。4)十六进制数转换二进制数

方法:将每位十六进制数转换成对应的四位二进制数。【例1-10】直接将二进制数11110.11转换成八进制数。

011 110 . 1103 6 . 6(11110.11)2=(36.6)8【例1-11】直接将八进制数35.6转换成二进制数。

3 5 . 6011 101 . 110(35.6)8=(11101.11)2【例1-12】直接将二进制11110.11转换成十六进制数。0001 1110 . 11001 E . C(11110.11)2=(1E.C)16【例1-13】直接将十六进制数0EF.CH转换成二进制数。

E F . C1110 1111 . 1100(EF.C)16=(11101111.11)21.2计算机中数与字符的编码1.2.1数值数据的编码及其运算

1.二进制数的编码及运算机器数:带符号的二进制数值数据在计算机内部的编码。

真值:机器数所代表的实际值。二进制数据的正负的表示+(0)-(1)

常用编码:原码、反码、补码

1)二进制数原码编码方法2n-1>X≥00≥X>-2n-1(1)二进制正、负数的原码就是符号化的机器数真值本身

(2)原码表示数的范围:[-(2n-1-1),(2n-1-1)](3)真值0的原码可表示为两种不同的形式

+0[+0]原=00000000B-0[-0]原=10000000B2)二进制数反码编码方法2n-1>X≥00≥X>-2n-1二进制正数的反码就是其原码。二进制负数的反码就是机器数符号位保持不变,其余按位取反。反码表示数的范围:[-(2n-1-1),(2n-1-1)](3)零的反码有两种表示法

[0]反=000…0n-1个0[0]反=111…1n-1个1

3)二进制数补码编码方法结论:二进制正数的补码就是其原码。二进制负数的补码就是机器数符号位保持不变,其余位取反码后末位加1。0≤X<2n-1-2n-1≤X<0正数的补码就是其原码。负数的补码就是机器数符号位保持不变,其余位取反码后末位加1,即:[x]补=[x]反

+1补码表示数的范围:[-2n-1,(2n-1-1)][0]补=000。。。。0n个0补码的性质1.补码表示数时,减运算可以用加上减数的补码来代替。即

A-B=(A+[-B]补)(MOD2n)2.用补码表示的数相加时,如果两数和的绝对值不产生溢出,并按下面的规则作两数的补码运算,则得到的结果仍然是和的补码。第一要把符号位当作数一样参加运算。第二符号位相加后,如有进位出现,则将其舍去。[X+Y]补=[X]补+[Y]补[X-Y]补=[X]补+[-Y]补3.[[x]补]补=[x]原有符号数运算时的溢出问题

计算机运算时由于位数的限制,会产生溢出。有符号数加减运算采用双高位法判别是否溢出。

CS:最高位进位

CP:次高位进位

P=CSXORCP=1且CS=0正溢出

=1且CS=1负溢出

=0不溢出【例1-15】机器字长n=8位,X=-48D,求[X]补。(1)将-48D转换为二进制数:-00110000B。(2)变为反码,11001111B,(3)末位加1后为,[-48]补

=11010000B=0D0H

字长=16时,对[-48]补进行扩展

[-48]补=1111111111010000B=0FFD0H

2.无符号整数的编码及运算规则在某些情况下,计算机要处理的数据全是正数,此时机器数再保留符号位就没有意义了。这时,将机器数最高有效位也作为数值位处理,也就是说,假设机器字长为n位,则有符号整数的编码可表示为符号位数值位

1位n-1位无符号整数的编码可表示为数值位n位

无符号整数的表示范围是:0≤N≤2n-1。例如,当n=8位时,表示范围是:0≤N≤255;当n=16位时,表示范围是:0≤N≤65535。计算机中最常见的无符号整数是地址,另外,双字长数据的低位字也是无符号整数。要注意的是,计算机本身不论是对有符号数还是无符号数,总是按照补码的运算规则做运算。

3.十进制数的编码及运算人们在日常生活中习惯使用十进制数,而在计算机内,采用二进制表示和处理数据更方便。因此,计算机在输入和输出数据时,要进行十→二和二→十的进制数转换。但是,在某些特定的应用领域中(如商业统计),数据的运算很简单,但数据的输入和输出量很大,这样,进制转换所占的时间比例就会很大。从提高计算机的运行效率考虑,可以采用在计算机内部直接用十进制表示和处理数据的方法。以下介绍在计算机内部的十进制数的编码方法及运算方法。

十进制数的每一个数位的基为10,但到了计算机内部,必须用基2码对每个十进制数位进行编码,所需要的最少的基码的位数为lb10(即log210),取整数为4。4位基2码有16种不同的组合,怎样从中选择出10个组合来表示十进制数位的0~9,有非常多的方案,最常见的是8421码。8421码是指4个基2码的位权从高到低分别为8、4、2、1,选择的是0000,0001,0010,…,1001这10种组合,用来表示0~9这10个数位,如表1-3所示。表1-3BCD码表

这种编码的特点是:这4个基2码之间满足二进制规则,而十进制数位之间是十进制计数规则。因此,这种编码实质上是二进制编码的十进制数(BinaryCodedDecimal),因此,简称BCD码或二一十进制码。十进制数码01234567898421码0000000100100011010001010110011110001001【例1-19】将十进制数67.9转换成BCD码。其过程如下:

6 7 . 90110 0111 . 1001所以(67.9)10=(01100111.0111)BCD【例1-20】将BCD码10010110.0110转换成十进制数,其过程如下:10010110 . 01109 6 . 6所以(10010110.0110)BCD=(96.6)10

BCD码的运算规则:BCD码是十进制数,而运算器对数据做加减运算时,都是按二进制运算规则进行处理的。这样,当将BCD码传送给运算器进行运算时,其结果需要修正。

修正的规则是:当两个BCD码相加,如果和等于或小于1001(即9H),不需要修正;如果相加之和在1010到1111(即0AH~0FH)之间,则需加6H进行修正;如果相加时本位产生了进位,也需加6H进行修正。

这样做的原因是,机器按二进制相加,所以4位二进制数相加时,是按“逢十六进一”的原则进行运算的,而实质上是2个十进制数相加,应该按“逢十进一”的原则相加,16与10相差6,所以当和超过9或有进位时,都要加6进行修正。下面举例说明。【例1-21】计算1+8的值如果将1和8送给机器进行加法运算,其运算过程如下:0001+)10001001结果是1001,即十进制数9,1+8=9正确。【例1-22】需要修正BCD码运算值的举例。①计算5+7的值。0101+)01111100结果大于9+)0110加6修正

10010结果是0010,即十进制数2,还产生了进位。5+7=12,结论正确。12②计算9+9的值。1001+)100110010+)011011000

结果是1000,即十进制的8,还产生进位,故加6修正。9+9=18,结论正确。18

若做减法运算,其修正规则为:当两个BCD码相减,如果差等于或小于1001,不需要修正;如果相减时本位产生了借位,则应减6H加以修正。

原因是:如果有借位,机器将这个借位当十六看待,而实际上应该当十看待,因此,应该将差值再减6H才是BCD码的正确结果值。下面举两个例子进行说明。【例1-23】

需要修正BCD码运算值的举例。①计算9-7的值。1001-)01110010结果值是0010,即十进制数2。9-7=2,结论正确。2②计算7-9的值。→发生借位10111-)10011110-)0110减6修正

1000

结果值是1000,即十进制数8,有借位。7-9=8,结论正确。(8是-2以10为模的补码,在机器中,负数都以补码形式表示)8

在计算机中BCD码有两种格式:压缩BCD码非压缩BCD码

(1)非压缩BCD码:1字节(8位二进制)中仅表示一位BCD数,例如:(00000110)BCD=6。

(2)压缩BCD码:1字节中仅表示两位BCD数,例如:(01100110)BCD=66。另外,BCD码除了采用上述方法调整以外,也可以在交付计算机运算之前,先将BCD码转换为二进制数,然后交付计算机运算,运算以后再将二进制结果转换为BCD码。1.2.2非数值数据的二进制编码现代计算机不仅要处理数值数据,而且还要处理大量的非数值数据,像英文字母、标点符号、专用符号、汉字等等。前面已说过,不论什么数据,都必须用基2码编码后才能存储、传送及处理,非数值数据也不例外。下面分别讨论常见的非数值数据的二进制编码方法。

1.字符编码使用最多、最普遍的是ASCII字符编码,即美国标准信息交换代码(AmericanStandardCodeforInformationInterchange),具体见表1-4。表1-4ASCII字符编码B6B5B4

B3B2B1B0000(0)001(1)010(2)011(3)100(4)101(5)110(6)111(7)0000(0)NULDLESP0@P`p0001(1)SOHDC1!1AQaq0010(2)STXDC2″2BRbr0011(3)ETXDC3#3CScs0100(4)EOTDC4$4DTdt0101(5)ENQNAK%5EUeu0110(6)ACKSYN&6FVfv0111(7)BELETB׳7GWgw1000(8)BSCAN(8HXhx1001(9)HTEM)9IYiy1010(A)LFSUB*:JZjz1011(B)VTESC+;K[k{1100(C)FFFS,<L\l|1101(D)CRGS-=M]m}1110(E)SORS.>N^n~1111(F)SIUS/?O_oDEL

ASCII码表有以下几个特点:

(1)每个字符用7位基2码表示,其排列次序为B6B5B4B3B2B1B0。实际上,在计算机内部,每个字符是用8位(即一个字节)表示的。一般情况下,将最高位置为“0”,即B7为“0”。需要奇偶校验时,最高位用做校验位。(2)ASCII码共编码了128个字符,它们分别是:*32个控制字符,主要用于通信中的通信控制或对计算机设备的功能控制,编码值为0~31(十进制)。*间隔字符(也称空格字符)SP,编码值为20H。*删除控制码DEL,编码值为7FH。*94个可印刷字符(或称有形字符)。这94个可印刷字符编码有如下两个规律:①字符0~9这10个数字符的高3位编码都为011,低4位为0000~1001,屏蔽掉高3位的值,低4位正好是数据0~9的二进制形式。这样编码的好处是既满足正常的数值排序关系,又有利于ASCII码与二进制码之间的转换。②英文字母的编码值满足A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论