补充内容:预备知识很过分.ppt
单片机原理与接口技术,付会凯,新乡学院,第1章 预备知识(数制与码制),1.1 进位计数制及各计数制间的转换1.2 二进制数的运算 1.3 带符号数的表示方法 原码、反码、补码1.4 定点数与浮点数1.5 BCD码和ASCII码,进位计数制及其相互转换,十进制、二进制、八进制和十六进制采用的都是进位计数制,进位计数制中用少量数码按次序排列成数位,并按由低到高的进位方式进行计数。基数和位 权是进位十进制的两个基本要素。基数R(Radix):是进位计数制中所用数码的个数,基数为r的进位计数制中需要R个数码,每个数位计满R就向高位进一,即“逢R进一”。位权W(Weight):在进位计数制表示的数中,同一数字处在不同位置表示不同的值,它所表示的值是该数字乘以一个由它所处位置所决定的常数,这一常数就是该数位所具有的位权。R进制数各位的权是以R为底的幂。,1.1 进位计数制及各计数制间的转换,进位计数制及其相互转换,任何一个R进制数N可以表示为:,若R=10,则十进制数,其各位的权是以10为底的幂;若R=2,则是二进制数,其各位的权是以2为底的幂;若R=8,则是八进制数,其各位的权是以8为底的幂,八进制中共有八个数码:0、1、2、3、4、5、6、7;若R=16,则是十六进制数,其各位的权是以16为底的幂,十六进制中共有16个数码:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。为了明确表示一个数所采用的进位计数制,可以该数的后面加上下标(B)、(O)、(D)、(H),分别表示该数为二进制、八进制、十进制和十六进制,进位计数制及其相互转换,R进制数转换为十进制数,按照公式展开求和,例1.分别把二进制数1011.01和十六进制数F0.C用十进制表示,十进制数转换为R进制数,整数部分和小数部分分别进行转换,整数部分的转换步骤:把R写成十进制数;将N除以R,记录商和余数,并用R进制表示余数,这余数便是用R进制表示的数的最低位数字;把上次的商进行中所述除以R取余的运算,用R进制表示余数;重复这种运算直到商为0,这时的余数即为十进制数N用R进制表示时的最高位数字。(除基取余),十进制数转换为R进制数,例2.把十进制数103用二进制表示例3.把十进制数506用十六进制表示,小数部分的转换步骤:把R写成十进制数;将N乘以R,记录积的整数部分和小数部分,并用R进制表示整数部分,该整数即为转换后R进制小数的最高位;把上次积的小数部分进行中所述乘以R取整的运算,用R进制表示积的整数部分;重复这种运算直到积的小数部分为0,或者达到所要求的位数,这时的整数部分即为十进制数N转换成R进制小数的最低位。(乘基取整),十进制数转换为R进制数,例4.把十进制0.8125用八进制表示,二进制与八进制、十六进制的相互转换,从二进制转换成十六进制时,从小数点位置开始,整数部分向左,小数部分向右,每四位二进制数为一组用一位十六进制的数字来表示,不足四位的用0补足,就是相应十六进制的表示。从二进制转换成八进制时,从小数点位置开始,整数部分向左,小数部分向右,每三位二进制数为一组用一位八进制的数字来表示,不足三位的用0补足,就是相应八进制的表示。,例5.把二进制用十六进制表示例6.把八进制数62.31用二进制表示,1.2 二进制数的运算,二进制数的算术运算,二进制数不仅物理上容易实现,而且算术运算也比较简单,其加、减法遵循“逢2进1”、“借1当2”的原则。以下通过4个例子说明二进制数的加、减、乘、除运算过程。,1.二进制加法,1 位二进制数的加法规则为:000 011 101 1110(有进位),3.二进制乘法,1 位二进制数的乘法规则为:000 010 100 111,2.二进制减法,1 位二进制数的减法规则为:101 110 000 011(有借位),二进制数的算术运算,2.二进制除法,二进制除法的运算过程类似于十进制除法的运算过程。二进制数除法是二进制数乘法的逆运算,在没有除法指令的微型计算机中,常采用比较、相减、余数左移相结合的方法进行编程来实现除法运算。由于MCS-51系列单片机指令系统中包含有加、减、乘、除指令,因此给用户编程带来了许多方便,同时也提高了机器的运算效率。,二进制数的算术运算,2.“或”运算(OR),“或”运算又称逻辑加,运算符为或。“或”运算的规则如下:000 01101 111,1.“与”运算(AND),“与”运算又称逻辑乘,运算符为或。“与”运算的规则如下:000 01100 111,二进制数的逻辑运算,4.“异或”运算(XOR),“异或”运算的运算符为,其运算规则如下:0 00 0 11 01 1 10,3.“非”运算(NOT),“非”运算又称逻辑非,如变量A的“非”运算记作。“非”运算的规则如下:,二进制数的逻辑运算,1.3 带符号数的表示方法原码、反码、补码,符号数的表示(原码、补码与反码),把二进制数的最高一位定义为符号位,符号位为0表示正数,符号位为1表示负数这种在计算机中使用的、连同符号位一起数值化了的数,称为机器数。机器数所表示的真实的数值,称为真值。对于符号数,机器数常用的表示方法有原码、反码和补码三种。数X的原码记作X原,反码记作X反,补码记作X补。最高位表示符号,数值位用二进制绝对值表示的方法,称为原码表示法一个负数的原码符号位保持不变,其余位取反就是机器数的另一种表示方法,反码表示法。正数的反码与原码相同。将负数的反码加1,则得到机器数的补码表示。正数的补码与原码相同。,二进制数的补码,最高位为符号位(0为正,1为负)正数的补码和它的原码相同负数的补码=数值位逐位求反+1 如+5=(0 0101)-5=(1 1011)通过补码,将减一个数用加上该数的补码来实现,二进制数的补码,7 4=37+8=3(舍弃进位)4+8=12 产生进位的模8是-4对模数12的补码,二进制数的补码,1110 0110=1000(14-6=8)1110+1010=11000=1000(舍弃进位)(14+10=8)0110+1010=241010是-0110对模24(16)的补码,补码加减法的运算规则XY补=X补+Y 补其中X,Y为正负数均可,符号位参与运算。,模(module)就是一个计数系统的最大容量,其大小等于以进位计数制基数为底,以位数为指数的幂。凡是用器件进行的运算都是有模运算,运算结果超过模的部分被运算器自动丢弃。因此,当器件为n位时,有,X=2n+X(mod 2n)不难验证,X补=2n+X(mod 2n)因此,XY补=2n+(XY)(mod 2n)=(2n+X)+(2n+X)=X补+Y补,补码加减法的运算规则,例7.设X=23,Y=-42,以28为模,用补码运算求X+Y和X-Y。,当运算结果超出补码表示的数值范围时,补码运算就不正确了。这种现象称为溢出。,对于n位补码,当 时应用补码运算可以得到正确的结果,无符号数的表示,无符号数的最高位不是符号位而是数值的一部分,1.4 定点数与浮点数,定点数的表示,1.定点整数表示法,小数点固定在最低数值位之后,机器中能表示的所有数都是整数,这种方法称之为定点整数表示法。当用n位表示数N时,1位为符号位,n1位为数值位,则N的取值范围是:2 n-1N2 n-11,2.定点小数表示法,小数点固定在最高数值位之前,机器中能表示的所有数即为纯小数,这种方法称之为定点小数表示法。当用n位表示数N时,1位为符号位,n1位为数值位,则N的范围是:(12 1-n)N12 1-n,浮点数的表示,任意一个二进制实数X都可以表示成如下一般格式:,10.010111012+5的阶码为+5,表示把尾数的小数点向右移动5位就是小数点的实际位置规格化处理:整数部分必须是1,8421BCD码,压缩BCD码的每一位用4位二进制表示,00001001表示09,一个字节表示两位十进制数。非压缩BCD码用一个字节表示一位十进制数,高4位总是0000,低4位的00001001表示09。,1.5 BCD码和ASCII码,ASCII码,采用7位二进制代码对字符进行编码数字09的编码是01100000111001,它们的高3位均是011,后4位正好与其对应的二进制代码相符。英文字母AZ的ASCII码从1000001(41H)开始顺序递增,字母az的ASCII码从1100001(61H)开始顺序递增,这样的排列对信息检索十分有利。,美国标准信息交换代码,1.5 BCD码和ASCII码,ASCII码,