单片机数制与码制_第1页
单片机数制与码制_第2页
单片机数制与码制_第3页
单片机数制与码制_第4页
单片机数制与码制_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

单片机原理及应用主讲:刘春梅单片机的预备知识(数制与码制)进位计数制及各计数制间的转换二进制数的运算

带符号数的表示方法——原码、反码、补码BCD码和ASCII码进位计数制及各计数制间的转换按进位原则进行计数的方法,称为进位计数制。十进制数有两个主要特点:

(1)有10个不同的数字符号:0、1、2、…、9;(2)低位向高位进位的规律是“逢十进一”。因此,同一个数字符号在不同的数位所代表的数值是不同的。如555.5中4个5分别代表500、50、5和0.5,这个数可以写成:式中的10称为十进制的基数,102、101、100、10-1称为各数位的权。进位计数制任意一个十进制数N都可以表示成按权展开的多项式:其中,di是0~9共10个数字中的任意一个,m是小数点右边的位数,n是小数点左边的位数,i是数位的序数。例如,543.21可表示为:

543.21=5×102+4×101+3×100+2×10-1+1×10-2一般而言,对于用R进制表示的数N,可以按权展开为式中,ai

是0、1、…、(R-1)中的任一个,m、n是正整数,R是基数。在R进制中,每个数字所表示的值是该数字与它相应的权Ri的乘积,计数原则是“逢R进一”。二进制数当R=2时,称为二进位计数制,简称二进制。在二进制数中,只有两个不同数码:0和1,进位规律为“逢二进一”。任何一个数N,可用二进制表示为例如,二进制数1011.01可表示为(1011.01)2=1×23+0×22+1×21+1×20+0×2-1+1×2-2

八进制数当R=8时,称为八进制。在八进制中,有0、1、2、…、7共8个不同的数码,采用“逢八进一”的原则进行计数。如(503)8可表示为:(503)8=5×82+0×81+3×80

十六进制

当R=16时,称为十六进制。在十六进制中,有0、1、2、…、9、A、B、C、D、E、F共16个不同的数码,进位方法是“逢十六进一”。例如,(3A8.0D)16可表示为:(3A8.0D)16=3×162+10×161+8×160+0×16-1+13×16-2

各种进位制的对应关系十进制二进制八进制十六进制十进制二进制八进制十六进制000091001119111110101012A2102211101113B3113312110014C41004413110115D51015514111016E61106615111117F7111771610000201081000108不同进制间的相互转换二、八、十六进制转换成十进制

例1:将数(10.101)2,(46.12)8,(2D.A4)16转换为十进制。(10.101)2=1×21+0×20+1×2-1+0×2-2+1×2-3=2.625(46.12)8=4×81+6×80+1×8-1+2×8-2=38.15625(2D.A4)16=2×161+13×160+10×16-1+4×16-2=45.64062十进制数转换成二、八、十六进制数

任意十进制数N转换成R进制数,需将整数部分和小数部分分开,采用不同方法分别进行转换,然后用小数点将这两部分连接起来。

(1)整数部分:除基取余法。分别用基数R不断地去除N的整数,直到商为零为止,每次所得的余数依次排列即为相应进制的数码。最初得到的为最低有效数字,最后得到的为最高有效数字。例2:将(168)10转换成二、八、十六进制数。(2)小数部分:乘基取整法。分别用基数R(R=2、8或16)不断地去乘N的小数,直到积的小数部分为零(或直到所要求的位数)为止,每次乘得的整数依次排列即为相应进制的数码。最初得到的为最高有效数字,最后得到的为最低有效数字。例3:将0.686转换成二、八、十六进制数(用小数点后5位表示)。例4:将168.686转换为二、八、十六进制数。根据例2、例3可得:二进制与八进制之间的相互转换

由于23=8,故可采用“合三为一”的原则,即从小数点开始分别向左、右两边各以3位为一组进行二——八换算:若不足3位的以0补足,便可将二进制数转换为八进制数。反之,采用“一分为三”的原则,每位八进制数用三位二进制数表示,就可将八进制数转换为二进制数。例6:将(123.45)8转换成二进制数。123.45001010011.100101即(123.45)8=(1010011.100101)2

即(101011.01101)2=(53.32)8

101011.01101053.32例5:将(101011.01101)2转换为八进制数。二进制与十六进制之间的相互转换

由于24=16,故可采用“合四为一”的原则,即从小数点开始分别向左、右两边各以4位为一组进行二——十六换算:若不足4位的以0补足,便可将二进制数转换为十六进制数。反之,采用“一分为四”的原则,每位十六进制数用四位二进制数表示,就可将十六进制数转换为二进制数。例7:将(110101.011)2转换为十六进制数。00110101.011035.6即(110101.011)2=(35.6)16

例8:将(4A5B.6C)16转换为二进制数。

4A5B.6C0100101001011011.01101100即:(4A5B.6C)16=(100101001011011.011011)2

二进制数的运算二进制数的算术运算二进制数只有0和1两个数字,其算术运算较为简单,加、减法遵循“逢二进一”、“借一当二”的原则。1.加法运算规则:0+0=0;0+1=1;1+0=1;1+1=10(有进位)例:求11001010B+11101B。解:被加数11001010加数11101进位+)00110000和11100111则11001010B+11101B=11100111B。由此可见,两个二进制数相加时,每1位有3个数参与运算(本位被加数、加数、低位进位),从而得到本位和以及向高位的进位。2.减法运算1位二进制数减法规则为:1-0=1,1-1=0,0-0=0,0-1=1(有借位)例:求10101010B-10101B。解:被减数10101010

减数10101

借位-)00101010

差10010101则10101010B-10101B=10010101B。3.乘法运算规则:0×0=0;0×1=1×0=0;1×1=1例:求1011B×1101B。4.除法运算规则:0/1=0;1/1=1例:求10100101B/1111B二进制数的逻辑运算1.“与”运算(AND)“与”运算又称逻辑乘,运算符为·或∧。“与”运算的规则:0·0=0;0·1=1·0=0;1·1=1

例:若二进制数X=10101111B,Y=01011110B,求X·Y。

10101111∧0101111000001110

则X·Y=00001110B。2.“或”运算(OR)“或”运算又称逻辑加,运算符为+或∨。“或”运算的规则:0+0=0;0+1=1+0=1;1+1=1例:若二进制数X=10101111B,Y=01011110B,求X+Y。

10101111∨0101111011111111

则X+Y=11111111B。3.“非”运算(NOT)“非”运算是实现“求反”这种逻辑的一种运算,如变量A的“非”运算记作。其运算规则如下:A例:若A=10101B,求A4.“异或”运算(XOR)“异或”运算是实现“必须不同,否则就没有”这种逻辑的一种运算,运算符为“”。其运算规则是:例:若X=1010B,Y=0110B,求XY。101001101100即XY=1100B带符号数的表示方法——原码、反码、补码机器数与真值单片机在数的运算中,不可避免地会遇到正数和负数,那么正负符号如何表示呢?由于计算机只能识别0和1,因此,我们将一个二进制数的最高位用作符号位来表示这个数的正负。规定符号位用“0”表示正,用“1”表示负。例如,X=-1101010B,Y=+1101010B,则X表示为:11101010B,Y表示为01101010B。数的码制1.原码当正数的符号位用0表示,负数的符号位用1表示,数值部分用真值的绝对值来表示的二进制机器数称为原码,用[X]原表示,设X为整数。若X=+Xn-2Xn-3…X1X0,则[X]原=0Xn-2Xn-3…X1X0=X;若X=-Xn-2Xn-3…X1X0,则[X]原=1Xn-2Xn-3…X1X0=2n-1-X。其中,X为n-1位二进制数,Xn-2、Xn-3、…、X1、X0为二进制数0或1。例如+115和-115在计算机中(设机器数的位数是8)其原码可分别表示为[+115]原=01110011B;[-115]原=11110011B可见,真值X与原码[X]原的关系为值得注意的是,由于[+0]原=00000000B,而[-0]原=10000000B,所以数0的原码不唯一。8位二进制原码能表示的范围是:-127~+127。2.反码一个正数的反码,等于该数的原码;一个负数的反码,由它的正数的原码按位取反形成。反码用[X]反表示。若X=-Xn-2Xn-3…X1X0,则[X]反=1Xn-2Xn-3…X1X0。例如:X=+103,则[X]反=[X]原=01100111B;

X=-103,则[X]原=11100111B,则[X]反=10011000B。3.补码

“模”是指一个计量系统的计数量程。如,时钟的模为12。任何有模的计量器,均可化减法为加法运算。仍以时钟为例,设当前时钟指向11点,而准确时间为7点,调整时间的方法有两种,一种是时钟倒拨4小时,即11-4=7;另一种是时钟正拨8小时,即11+8=12+7=7。由此可见,在以12为模的系统中,加8和减4的效果是一样的,即-4=+8(mod12)。对于n位单片机来说,数X的补码定义为

即正数的补码就是它本身,负数的补码是真值与模数相加而得。可见:①正数的补码与其原码相同,即[X]补=[X]原;②零的补码为零,[+0]补=[-0]补=000…00;③负数才有求补码的问题。负数补码的求法补码的求法一般有两种:①用补码定义式:[X]补=2n+X=2n-|X|-2n-1≤X≤0(整数)在用补码定义式求补码的过程中,由于做一次减法很不方便,故该法一般不用。例如:X=-0101111B,n=8,则[X]补=28+(-0101111B)

=100000000B-0101111B

=11010001B(mod28)②用原码求反码,再在数值末位加1可得到补码,即:[X]补=[X]反+1。例:假设X1=+83,X2=-76,当用8位二进制数表示一个数时,求X1、X2的原码、反码及补码。解:[X1]原=[X1]反=[X1]补=01010011B

[X2]原=11001100B[X2]反=10110011B[X2]补=[X]反+1=10110100B

综上所述可归纳为:正数的原码、反码、补码就是该数本身;负数的原码其符号位为1,数值位不变;负数的反码其符号位为1,数值位逐位求反;负数的补码其符号位为1,数值位逐位求反并在末位加1。BCD码(BinaryCodedDecimal)

二进制数以其物理易实现和运算简单的优点在计算机中得到了广泛应用,但人们日常习惯最熟悉的还是十进制。为了既满足人们的习惯,又能让计算机接受,便引入了BCD码。它用二进制数码按照不同规律编码来表示十进制数,这样的十进制数的二进制编码,既具有二进制的形式,又具有十进制的特点,便于传递处理。BCD码和ASCII码1位十进制数有0~9共10个不同数码,需要由4位二进制数来表示。4位二进制数有16种组合,取其10种组合分别代表10个十进制数码。最常用的方法是8421BCD码,其中8、4、2、1分别为4位二进制数的位权值。下表给出了十进制数和8421BCD码的对应关系。

从表中可看出8421BCD码与十进制数关系直观,二—十间相互转换容易。例如:将78.43转换成相应的BCD码,而将(01101001.0

温馨提示

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

评论

0/150

提交评论