数在计算机中的表示.ppt_第1页
数在计算机中的表示.ppt_第2页
数在计算机中的表示.ppt_第3页
数在计算机中的表示.ppt_第4页
数在计算机中的表示.ppt_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

第二章 数在计算机中的表示,主要内容:,2.1 数的进制和在计算机中的表示 2.2 BCD码和二进制数的逻辑运算,2.1计算机中信息的表示, 概述,计算机在目前的信息社会中发挥的作用越来越重要,计算机的功能也得到了很大的改进,从最初的科学计算、数值处理发展到现在的过程检测与控制、信息管理、计算机辅助系统等方面。计算机不仅仅是对数值进行处理,还要对语言、文字、图形、图像和各种符号进行处理,但因为计算机内部只能识别二进制数,所以这些信息都必须经过数字化处理后,才能进行存储、传送等处理。 在计算机系统中,数字和符号都是用电子元件的不同状态表示的,即以高低电平表示 。,2.1计算机中信息的表示,进位计数制的概念,按进位的原则进行计数称为进位计数制,简称“数制”。在日常生活中,除了采用十进制计数外,有时也采用别的进制来计数。例如:十二进制、六十进制等。,在进位计数制中,每个数位所用的不同的数字的个数叫做“基数”,十进制由0,1,2,3,4,9等十个不同的数字组成,也就是说十进制的基数是10。,十进制计数的特点是“逢十进一“。在一个十进数中,需要用到十个数字符号09,即十进制数中的每一位是这十个数字符号之一。一个十进制数可以用位权表示。,2.1计算机中信息的表示,进位计数制的概念,1、位权 在一个十进制数中,同一个数字符号处在不同位置上所代表的值是不同的;一个数字符号,不管它在哪一个十进制数中,只要在相同位置上,其值是相同的。 通常称某个固定位置上的计数单位为位权。在十进制计数中,十位数位置上的位权为101,在小数点后第 1位上的位权为10-1。 例如:十进制数234.13用位权表示成: (234.13)10=2102+3101+4100+110-1+310-2,2.1计算机中信息的表示,进位计数制的概念,2、常用的计数制 1)十进制数,含有0、1、2、3、4、5、6、7、8、9十个基本 数字,进位是“逢十进一” 。通常十进制的表示形式为(152)10或(152)D。 2)二进制数。二进制只含有0、1两个数字,通常二进制的表示形式为(110)2或(110)B。 例如:(10.01)2 的位权表示法为:12102002-112-2 3)八进制数。八进制数含有0、1、2、3、4、5、6、7八个基本数字,通常八进制的表示形式为(152)8或(152)O。 例如:(23.4)8的位权表示法为:28138048-1 4)十六进制数。十六进制数含有0-9、A、B、C、D、E、F十六个基本数字,通常十六进制的表示形式为(15D)16或(152)H。 例如:(A2.9)16的位权表示方法为:101612160916-1,2.1计算机中信息的表示,计算机与二进制数,计算机采用二进制的原因 1)容易实现:二进制在硬件技术上容易实现,只需 两个状态。 2)运算简单:二进制运算规则简单,操作实现简便。 3)工作可靠:由于采用两种稳定的状态来表示数 字,使数据的存储、传送和处理都变得更加可靠。 4)逻辑判断方便。,2.1计算机中信息的表示,计算机与二进制数,二进制的运算 二进制与十进制的运算原理一致,只是在二进制运算时,逢二进一,借一当二。 1)二进制加法运算法则 000 011 101 1110 2)二进制减法运算法则 000 101=1(借1当2) 101 110 3)二进制乘法运算法则 000 010 100 111 4)二进制除法运算法则 00(无意义) 010 10(无意义) 111,10011 所以 1001+1010=10011,2.1计算机中信息的表示,计算机与二进制数,二进制的加减运算,可借助于十进制数的加减运算竖式,即在进行两数相加时,首先写出被加数和加数,然后按照由低位到高位的顺序,根据二进制加法运算法则把两个数逐位相加即可。,例2-1:求1001+1010=? 解: 1001 1010,例2-2:求1101010100? 解: 11010 10100,00110 所以 1101010100110,2.1计算机中信息的表示,计算机与二进制数,例2-3:求100101001=?,100101001=10100010,二进制的移位运算和十进制的移位运算的比较: 十进制中每左移一位相当于乘以10,左移n位相当于乘以10n,同理,二进制中每左移一位相当于乘以2,左移n位相当于乘以2n。 所以二进制乘法可以转换为加法和左移位运算,除法可以转换为减法和右移位运算。,2.1计算机中信息的表示,计算机与二进制数,二进制小数 二进制小数用小数点左边数字表示数值的整数部分,小数点右边的数字表示数值的小数部分。小数点右面的第一位权为2-1,第二位为2-2,后面的依此类推。,对于带小数的加法,十进制中的方法同样适用于二进制,即两个带小数点的二进制数相加,只要将小数点对齐,按照以前同样的步骤进行即可。,例2- 4 100.01+1101.11=? 解: 100.01 + 1101.11,10010.00 所以100.01+1101.11=10010.00 计算机中所有的运算最后都是以加法形式进行的,所以二进制加法是计算机运算的基础。,2.1计算机中信息的表示,数制转换,1二十进制转换 二进制转换成十进制 二进制只含有0、1两个数字,其计数特点是“逢二进一”。与十进制计数一样,在二进制数中,每一个数字符号(0或1)在不同的位置上具有不同的值,各位上的权值是基数2的若干次幂。 整数转换 (10010)2= 小数转换 (101.11)2=,=(18)10,=(5.75)10,124+023+022+121+020,122+021+120+12-1+12-2,2.1计算机中信息的表示,数制转换,1二十进制转换 (2) 十进制转换成二进制 十进制整数转换成二进制整数采用“除2取余法”。,具体作法为:将十进制数除以2,得到一个商数和一个余数;再将商数除以2,又得到一个商数和一个余数继续这个过程,直到商数等于零为止。每次得到的余数(必定是0或1)就是对应二进制数的各位数字。 但必须注意:第一次得到的余数为二进制数的最低位,最后一次得到的余数为二进制数的最高位。 例如:将十进制数97转换成二进制数。,2.1计算机中信息的表示,数制转换,1二十进制转换,例如:将十进制数97转换成二进制数。,48 余数为1,即a0=1,24 余数为0,即a1=0,12 余数为0,即a2=0,2,2,2,6 余数为0,即a3=0,2,3 余数为0,即a4=0,2,1 余数为1,即a5=1,2,0 余数为1,即a6=1 商为0,结束,(97)10=(a6a5a4a3a2a1a0)=(1100001)2,97,2,2.1计算机中信息的表示,数制转换,1二十进制转换 (2) 十进制转换成二进制 十进制小数转换成二进制小数采用“乘2取整法”。 具体作法为:用2乘十进制小数,得到一个整数部分和一个小数部分;再用2乘小数部分,又得到一个整数部分和一个小数部分继续这个过程,直到余下的小数部分为0或满足精度要求为止。最后将每次得到的整数部分(必定是0或1)从左到右排列即得到所对应的二进制小数。 注意:一个十进制小数不一定能完全准确地转换成二进制 小数,此时可根据精度要求只转换到小数点后某一位为止。 例如: 将十进制小数0.6875转换成二进制小数。,例如: 将十进制小数0.6875转换成二进制小数。,1.3 7 5 0 整数部分为1,即a-1=1,0.3 7 5 0 余下的小数部分,0.7 5 0 0 整数部分为0,即a-2=0,0.7 5 0 0 余下的小数部分,1.5 0 0 0 整数部分为1,即a-3=1,0.5 0 0 0 余下的小数部分,1.0 0 0 0 整数部分为1,即a-4=1,0.0 0 0 0 余下的小数部分为0,结束,(0.6875)10=(0.a-1a-2a-3a-4)2=(0.1011)2, 2, 2, 2,0.6 8 7 5, 2,1二十进制转换 (2) 十进制转换成二进制 为了将一个既有整数部分又有小数部分的十进制数转换为二进制数,可以将其整数部分和小数部分分别转换,然后再组合起来。 例如:将97.6875转换为二进制数,2.1计算机中信息的表示,数制转换,(97)10=(1100001)2,(0.6875)10=(0.1011)2,由此可得:(97.6875)10=(1100001.1011)2,2.1计算机中信息的表示,数制转换,2八十进制的转换 (1)八进制向十进制转换 八进制数中有八个数字符号07,其计数特点是“逢八进一”。与十进制计数一样,在八进制数中,每一个数字符号(07)在不同的位置上具有不同的值,各位上的权值是基数8的若干次幂。 例如:(154)8=182+581+480=(108)10 小数之间的转换原理也一样, 例如: (154.11)8=182+581+480+18-1+18-2=(108.140625)10,2.1计算机中信息的表示,数制转换,2八十进制的转换 (2) 十进制转换成八进制 十进制整数转换成八进制整数采用“除8取余法”。 例如:将十进制整数277转换成八进制整数。 十进制小数转换成八进制小数采用“乘8取整法”。 例如:将十进制小数0.140625转换成八进制小数,2.1计算机中信息的表示,数制转换,1八进制转换,例如:将十进制整数277转换成八进制整数。,34 余数为5,即a0=5,8,4 余数为2,即a1=2,8,0 余数为4,即a2=4 (商为0结束),(277)10 =(a2a1a0 )=(425)8,277,8,2.1计算机中信息的表示,数制转换,1八进制转换,例如:将十进制小数0.140625转换成八进制小数。,0.1 4 0 6 2 5, 8,1.1 2 5 0 0 0 整数部分为1,即a-1=1,0.1 2 5 0 0 0 余下的小数部分, 8,1.0 0 0 0 0 0 整数部分为1,即a-2=1,0.0 0 0 0 0 0 余下的小数部分为0,结束,(0.140625)10=(0.a-1a-2)8=(0. 11)8,2.1计算机中信息的表示,数制转换,2八十进制的转换 (2) 十进制转换成八进制 将一个十进制数转换成八进制数时,需要将指数部分和小数部分分别进行转换。 例如:,(277)10 =(425)8,(0.140625)10=(0. 11)8,可得: (277.140625)10=(425. 11)8,2.1计算机中信息的表示,数制转换,3十六十进制转换 (1)十六进制转换成十进制 十六进制数中有十六个数字符号09以及A、B、C、D、E、F,其计数特点是“逢十六进一”。其中符号A、B、C、D、E、F分别代表十进制数10、11、12、13、14、15。与十进制计数一样,在十六进制数中,每一个数字符号(09以及A、B、C、D、E、F)在不同的位置上具有不同的值,各位上的权值是基数16的若干次幂。例如: (1CB.D8)16=1162+12161+11160+1316-1+816-2,=(459.84375)10,2.1计算机中信息的表示,数制转换,3十六十进制转换 (2) 十进制转换成十六进制 十进制整数转换成十六进制整数采用“除16取余法”。 十进制小数转换成十六进制小数采用“乘16取整法”。 在将一个十进制数转换成十六进制数时,需要将整数部分和小数部分分别进行转换。 例如:十进制数91.75转换成十六进制数,(91.75)10=(a1a0.a-1)16=(5B.C)16,2.1计算机中信息的表示,数制转换,4、二进制与八、十六进制之间的转换 (1) 二进制与八进制、十六进制之间有着简单的关系,它们之间的转换是很方便的。由于8和16都是2的整数次幂,即8=23、16=24。因此,三位二进制数相当于一位八进制数,四位二进制数相当于一位十六进制数。 (2) 八进制数转换成二进制数的规律是:每位八进制数用相应的三位二进制数代替。 例如:八进制数(315.27)8转换成二进制数 (3) 十六进制数转换成二进制数的规律是:每位十六进制数用相应的四位二进制数代替。 例如:十六进制数(2BD.C)16转换成二进制数,2.1计算机中信息的表示,数制转换,4、二进制与八、十六进制之间的转换 例如:八进制数(315.27)8转换成二进制数 3 1 5 . 2 7,011,001,101,010,111,.,即 (315.27)8=(11001101.010111)2,2.1计算机中信息的表示,数制转换,4、二进制与八、十六进制之间的转换 例如:十六进制数(2BD.C)16转换成二进制数 2 B D . C,0010,1011,1101,.,1100,即 (2BD.C)16=(1010111101.1100)2,2.1计算机中信息的表示,数制转换,4、二进制与八、十六进制之间的转换 (4) 二进制数转换成八进制数的规律是:从小数点开始,向前每三位一组构成一位八进制数;向后每三位一组构成一位八进制数,当最后一组不够三位时,应在后面添0补足三位。 例如:二进制数(1101001101.01)2转换成八进制数 (5) 二进制数转换成十六进制数的规律是:从小数点开始,向前每四位一组构成一位十六进制数;向后每四位一组构成一位十六进制数,当最后一组不够四位时,应在后面添0补足四位。 例如:二进制数(1101001101.01)2转换成十六进制数,2.1计算机中信息的表示,数制转换,4、二进制与八、十六进制之间的转换 例如:二进制数(1101001101.01)2转换成八进制数 1 101 001 101 . 010 1 5 1 5 . 2 即 (1101001101.01)2 =(1515.2)8,2.1计算机中信息的表示,数制转换,4、二进制与八、十六进制之间的转换 例如:二进制数(1101001101.01)2转换成十六进制数 11 0100 1101 . 0100 3 4 D . 4 即 (1101001101.01)2 =(34D.4)16,2.1计算机中信息的表示,5.不同数制数相互转换的进一步讨论 (1)、二进制数转换为十六进制数 二进制数转换为十六进制数在工程中经常使用、也非常简单。 已讲过,4位二进制数可用1位16进制数来代替, 4位二进制数权分别是8、 4 、2、 1,所以这位16进制数就等于这4位二进制数bit值等于1的各位权相加,就是8、 4 、2、 1这四位数中的几个简单相加。十六进制数的位置对应原二进制数的位置。,2.1计算机中信息的表示,例如:一个8位二进制数 1 1 1 1 1 1 1 0 B用2位16进制数表示: 二进制数:1 1 1 1 1 1 1 0 B 4位二进制数权:8 4 2 1 8 4 2 1 16进制数低位=8+4+2=14=0x E; 16进制数高位=8+4+2+1=15=0x F; 1 1 1 1 1 1 1 0 B=0xFE,,2.1计算机中信息的表示,又例如:0 1 1 1 1 0 0 0 B用16进制数表示,低4位bit值等于1的各位权相加=0x 8;高4位bit值等于1的各位权相加4+2+1=0x 7;16进制数等于0x78。 又例如:0 0 1 1 1 1 0 0 B用16进制数表示,低4位bit值等于1的各位权相加8+4=0x C;高4位bit值等于1的各位权相加2+1=0x 3;16进制数等于0x3C。 这种算法对于数值大的数的转换效率高。,2.1计算机中信息的表示,例如32位二进制数转换为8位16进制数: 二进制数:0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 1 B 权:8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 8 4 2 1 Bit权相加: 3 C 3 C 3 C 3 D 结果:0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 1 B=0x3C3C3C3D,2.1计算机中信息的表示,(2)、十进制整数转换为二进制整数 当我们把一个十进制整数转换为二进制整数时,如上节所述可以采用除二取余法。但如果十进制整数比较大,这样做就非常麻烦并容易出错。 简单做法是先将十进制整数转换为十六进制数,然后利用十六进制数和二进制数的简单换算关系,每一位十六进制数用4位二进制数来取代,就可以很快得到结果。,2.1计算机中信息的表示,例如,将十进制数65534转换为二进制数,用除2取余法会很麻烦,现用除十六取余法: 商 余 (1)6553416=4095-E (2)409516=255-F (3)25516=15-F |-F 最后 65534=0xFFFE=1111 1111 1111 1110 B 又例如,将十进制数100转换为二进制数 (1)10016=0x64 (2)每一位十六进制数用4位二进制数来取代,得结果: 0x64=0110 0100 B,2.1计算机中信息的表示,(3)、当我们要将一个二进制数转换为十进制数时,先将4位二进制数用一位16进制数代替,二进制数不够4位,前面加0;然后将此16进制数各位乘权相加即可。 例如,将二进制数1111 1111 1111 1111 B转换为十进制数 (1)1111 1111 1111 1111 B=0x FFFF (2)各位乘权相加1516+1516+1516+1516=65535 又例如,将二进制数1111 1111 1111 1100 B转换为十进制数 (1)1111 1111 1111 1100 B=0x FFFC (2)各位乘权相加1216+1516+1516+1516=65532,2.1计算机中信息的表示,6 、二进制数在计算机中使用 在计算机中,把二进制数的1位叫比特(bit), 比特(bit)是计算机中数的最小单位,比特(bit)的取值只能是1或0。 当通过接口电路把比特(bit)用于输出时,它可以控制一个外围设备,例如点亮一个发光二极管、接通一个继电器或叫一台电机旋转;用于输入时它可以标志一个开关量的状态,例如温度超限、压力超标、酸碱度过高等。 在工业控制计算机中,专门有“位”(bit)这种数据类型,如果一个变量被定义为bit数据类型,它只能是二进制数的1位,取值只能是1或0。 在这种计算机中,存储单元专门有“位”存储区,在“位”存储区中每个“位”变量都有一个确定的地址,通过该地址可以访问“位”变量。,2.1计算机中信息的表示,在某些特殊功能寄存器中,寄存器中的“位”有专门的名字,通过该名字可以访问特殊功能寄存器中的某些“位”。 “位”虽然能代表一些信息,但信息量太小,所以在计算机中常用“字节”(byte)来代表各种信息或控制数据。 一个字节是由8位二进制数组成,结构如图2-1所示。 D7 D6 D5 D4 D3 D2 D1 D0 图2-1 一个字节结构 在图2-1中,D7代表最高位,在字节最左侧,位权是;D0代表最低位,在字节最右側,位权是。一个无符号字节数范围为0255。 用8位二进制数来代表一个字节书写麻烦,容易出错,更多的时候我们是用2位16进制数来代表一个字节。 D7 D6 D5 D4和D3 D2 D1 D0位权分别是8 4 2 1,我们把这种二进制数叫8 4 2 1码。,2.1计算机中信息的表示,在计算机中,还常用二个字节(16bit)来代表各种信息或控制数据。我们称之为“字”(Word),一个“字”结构如图2-2所示 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 图2-2 一个字结构 在图2-2中,D15代表最高位,在字节最左侧,位权是;D0代表最低位,在字节最右側,位权是。一个无符号“字”的数范围为065535。 一个“字”(Word)常用4位16进制数表示。,2.1计算机中信息的表示,2、十进制整数转换为二进制整数 当我们把一个十进制整数转换为二进制整数时,如上节所述可以采用除二取余法。但如果十进制整数比较大,这样做就非常麻烦并容易出错。 简单做法是先将十进制整数转换为十六进制数,然后利用十六进制数和二进制数的简单换算关系,每一位十六进制数用4位二进制数来取代,就可以很快得到结果。,2.2 BCD码和二进制数的逻辑运算,1、什么是BCD码 当我们通过键盘向计算机输入一个数时,是按十进制数输入的。例如我们输入1024(一千零二十四),但计算机只能进行二进制运算和存储,所以计算机是这样存储: 00000001 00000000 00000010 00000100 B 上面的四个字节二进制数,既不是二进制的1024(0100 0000 0000 B),也不是十进制的1024,而是用二进制表示的十进制数,即用一个字节二进制数表示一位十进制数并按权排列。 我们把用二进制数表示的十进制数叫BCD码。,把BCD码转换为二进制数的过程就是数控技术中著名的“十翻二”运算。 当运算结束,要输出运算结果时,我们还要把二进制数转换成BCD码,然后输出。 就是说,计算机内部的运算是按二进制来进行的,但输入输出是使用BCD码。 一个十进制数字最大为9,用4位2二进制数表示就可满足要求。上面用一个字节二进制数表示一位十进制数,浪费很多内存,所以实际上是用一个字节二进制数表示二位十进制数。这种BCD码叫压缩的BCD码,也叫组合的BCD码。上面非组合的BCD码写成压缩的BCD码就是:00010000 00100100 B,2.2 BCD码和二进制数的逻辑运算,2、“十翻二”运算 当我们通过键盘向计算机输入一个十进制数2345(二千三百四十五),首先输入2,然后输入3,系统求和210+3;然后输入4,求和(210+3)10+4;最后输入5,系统将求和(210+3)10+4 )10+5;最后得2345。 就是说每输入一个新数,将原来的累加和乘10加上这个新数,然后将这个值做为新的累加和,进行下面的输入,直到输入结束。 上面的运算过程中,有许多乘10运算,计算机将乘10运算分解为乘8+乘2;一个数乘8就是该数左移3位;乘2就是该数左移1位。 移位运算是计算机执行速度最快的指令,通过简单的移位和相加完成“十翻二”运算。,2.2 BCD码和二进制数的逻辑运算,2、二进制的逻辑运算 (1)两个bit(1位二进制数)型二进制数的逻辑运算 bit型二进制数的逻辑运算包括“或”运算、“与”运算、和“非”运算三种。 我们用“|”表示“或”运算;用“&”表示“与”运算;用“”表示“非”运算。 “或”运算规则: 0|0=0 0|1=1 1|0=1 1|1=1 “与”运算规则: 0&0=0 0&1=0 1&0=0 1&1=1 “非”运算规则: 0=1 1=0,2.2 BCD码和二进制数的逻辑运算,(2)两个byte(字节,8位二进制数)型二进制数的逻辑运算 在这种运算中,byte型二进制数只有两种状态,不管它本身值是多少,只要是不等于0,我们就认为它是“非”0的,逻辑值就等于1。否则逻辑值就等于0。而且两个字节逻辑运算的结果只能是0或1。 两个字节型二进制数之间的逻辑运算也有三种:逻辑“或”运算“|”;逻辑“与”运算“ !A=0。,2.2 BCD码和二进制数的逻辑运算,3、字节型二进制数还有按“位”逻辑运算关系,即字节相应位分别进行逻辑运算,结果是另一个字节型二进制数,不修改原数。按“位”逻辑运算关系有: 按位与: & 按位或: | 按位取反: 按位异或: 按位左移n位:n 按“位”逻辑运算关系是在控制系统中使用最多的逻辑运算。 按位左、右移n位时超出字节范围的数被丢弃,形成的空位填0。左移一位相当该数2;右移一位相当该数2。,2.2 BCD码和二进制数的逻辑运算,设a=0x54=01010100b,b=0x3b=00111011b,则有: a&b=00010000B=0x10 a|b=01111111

温馨提示

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

评论

0/150

提交评论