您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 第二章-计算机中的数制和码制
第2章计算机中的数制和编码第2章计算机中的数制和编码2.1无符号数的表示及运算2.2带符号数的表示及运算2.3信息的编码第2章计算机中的数制和编码计算机的基本功能是进行数据和信息的处理。数据、信息在计算机中都是以二进制编码来表示。本章就是要学习数据在计算机中是如何表示的?信息在计算机中是如何表示(编码)的?本章首先简要介绍无符号数的表示方法、各种数制的相互转换;然后重点介绍带符号数的表示方法、补码加减法运算以及运算时溢出的判断方法;最后介绍十进制数的二进制编码(BCD编码)、字符(包括字母、数字和符号)的ASCII编码。具体内容如下:1、无符号数的表示方法2、带符号数的表示方法3、信息的编码第2章计算机中的数制和编码2.1无符号数的表示2.1.1无符号数的表示方法1.十进制数的表示方法2.十进制计数法的特点是:①逢十进一;②使用10个数字符号(0,1,2,……,9)的不同组合来表示一个十进制数;③以后缀D或d表示十进制数(Decimal),但该后缀可以省略。例2.1138.5(D)=1012105108103101第2章计算机中的数制和编码2.二进制数的表示方法二进制计数法的特点是:①逢二进一;②使用2个数字符号(0,1)的不同组合来表示一个二进制数;③以后缀B或b表示二进制数(Binary)。例2.21101.11B=)(75.13212121202121210123D第2章计算机中的数制和编码3.十六进制数的表示法十六进制计数法的特点是:①逢十六进一;②使用16个数字符号(0,1,2,3……,9,A,B,C,D,E,F)的不同组合来表示一个十六进制数,其中AF依次表示1015;③以后缀H或h表示十六进制数(Hexadecimal)。例2.30E5AD.BFH=21012316151611161316101651614第2章计算机中的数制和编码注意:十六进制计数法是为了克服二进制计数法书写麻烦而引入的一种进位计数制;在编写汇编语言源程序时,如果一个十六进制数的最高位为AF中的一个数字符号时,该数前面必须加0,以与变量名区别;不论数据以什么数制表示,最终在计算机内部都将以二进制形式表示。第2章计算机中的数制和编码2.1.2各种数制的相互转换1.任意进制数转换为十进制数二进制、十六进制以至任意进制数转换为十进制数的方法很简单,只要各位按权展开(即该位的数值乘于该位的权)求和即可。第2章计算机中的数制和编码2.十进制数转换成二进制数1).整数部分的转换除以基数(2)取余数,先为低位(B0)后为高位2)小数部分的转换乘以基数(2)取整数(0或1),先为高位(B-1)后为低位说明:十进制转换成二进制方法也适用于将十进制转换为八进制(基数为8)、十六进制整数(基数为16)以至其它任何进制数。第2章计算机中的数制和编码例2.4将13.75转换为二进制数。分别将整数和小数部分进行转换:整数部分:13=1101B小数部分:0.75=0.11B因此,13.75=1101.11B第2章计算机中的数制和编码3.二进制数与十六进制数之间的转换将二进制数转换为十六进制数的方法:以小数点为界,向左(整数部分)每四位为一组,高位不足4位时补0;向右(小数部分)每四位为一组,低位不足4位时补0。然后分别用一个16进制数表示每一组中的4位二进制数。将十六进制数转换为二进制数的方法:直接将每一位十六进制数写成其对应的四位二进制数。第2章计算机中的数制和编码例2.61101110.01011B=0110,1110.0101,1000B=6E.58H2F.1BH=101111.00011011B第2章计算机中的数制和编码2.2带符号数的表示及运算2.2.1机器数与真值日常生活中遇到的数,除了上述无符号数外,还有带符号数。对于带符号的二进制数,其正负符号如何表示呢?在计算机中,为了区别正数和负数,通常用二进制数的最高位表示数的符号。对于一个字节型二进制数来说,D7位为符号位,D6D0位为数值位。在符号位中,规定用“0”表示正,“1”表示负,而数值位表示该数的数值大小。把一个数及其符号位在机器中的一组二进制数表示形式,称为“机器数”。机器数所表示的值称为该机器数的“真值”。第2章计算机中的数制和编码2.2.2机器数的表示方法1.原码•数x的原码记作[x]原。•在原码表示法中,最高位为符号位(正数为0,负数为1),其余数字位表示数的绝对值。第2章计算机中的数制和编码例:(1)对于正数x=+1101001B(即x=+105)[x]原=01101001B(2)对于负数x=-1101001B(即x=-105)[x]原=11101001B最高位为符号位,其余各位为数值本身(3)对于0,可以认为它是(+0),也可以认为它是(-0),这样0在原码中有两种表示法[+0]原=00000000B[-0]原=10000000B第2章计算机中的数制和编码8位二进制原码表示数的范围为-127+127;16位二进制原码表示数的范围为-32767+32767;原码的表示范围第2章计算机中的数制和编码原码表示法简单直观,且与真值的转换很方便,但不便于在计算机中进行加减运算。因此,计算机中通常使用补码进行加减运算,这样就引入了反码表示法和补码表示法。第2章计算机中的数制和编码2.反码•数x的反码记作[x]反。•正数的反码与其原码相同。•负数的反码是在原码基础上,符号位不变(仍为1),数值位按位取反。第2章计算机中的数制和编码例(反码)(1)对于正数:符号位=0,其余位为真值的对应位,所以[x]反=[x]原x=+1101001(即x=+105)[x]反=01101001(2)对于负数:符号位=1,其余位为真值的对应位按位取反x=-1101001(即x=-105)[x]反=10010110(3)对于0,可以认为它是(+0),也可以认为它是(-0),这样0在反码中也有两种表示法[+0]反=00000000[-0]反=11111111第2章计算机中的数制和编码反码表示数的范围是:8位二进制反码表示数的范围为-127+127;16位二进制反码表示数的范围为-32767+32767;“0”的反码有两种表示法:00000000表示+0,11111111表示-0。第2章计算机中的数制和编码3.补码•数x的补码记作[x]补;•正数的补码与其原、反码相同。•负数的补码是在原码基础上,符号位不变(仍为1),数值位按位取反,末位加1;或在反码基础上末位加1。第2章计算机中的数制和编码例(补码)(1)对于正数:符号位=0,其余位为真值的对应位,所以[x]补=[x]反=[x]原x=+1101001(即x=+105)[x]补=01101001(2)对于负数:符号位=1,其余位为真值的对应位按位取反,最后再加1x=-1101001(即x=-105)[x]补=10010111(3)对于0,只有一种表示法[+0]补=[-0]补=00000000第2章计算机中的数制和编码补码的表示范围:8位二进制补码表示数的范围为-128+127;16位二进制补码表示数的范围为-32768+32767。第2章计算机中的数制和编码2.2.4补码的加减运算1.补码加法在计算机中,带符号数一般用补码表示,运算结果自然也是补码。其运算特点是:符号位和数值位一起参加运算,并且自动获得结果(包括符号位与数值位)。补码加法的运算规则为:即:两数补码的和等于两数和的补码。补补补][][][yxyx(2.2.5)第2章计算机中的数制和编码2.补码减法补码减法的运算规则为:补补补补补][][][][][yxyxyx(2.2.6)第2章计算机中的数制和编码计算机中带符号数用补码表示时有如下优点:①可以将减法运算变为加法运算,因此可使用同一个运算器实现加法和减法运算,简化了电路。第2章计算机中的数制和编码②无符号数和带符号数的加法运算可以用同一个加法器实现,结果都是正确的。例如:无符号数带符号数11100001225[-31]补+)00001101+)13+)[+13]补11101110238[-18]补若两操作数为无符号数时,计算结果为无符号数11101110B,其真值为238,结果正确;若两操作数为补码形式,计算结果也为补码形式,11101110B为–18的补码,结果也是正确的。第2章计算机中的数制和编码2.2.5溢出及其判断方法1.进位与溢出所谓进位,是指运算结果的最高位向更高位的进位,用来判断无符号数运算结果是否超出了计算机所能表示的最大无符号数的范围。溢出是指带符号数的补码运算溢出,用来判断带符号数补码运算结果是否超出了补码所能表示的范围。例如,字长为n位的带符号数,它能表示的补码范围为-2n-1+2n-1-1,如果运算结果超出此范围,就叫补码溢出,简称溢出。第2章计算机中的数制和编码3.补码运算溢出的判别x=+65→(01000001)补y=+67→(01000011)补[x]补+[y]补=(10000100)补x+y=+132,它的补码不可能是负数,为什么会发生错误?因为产生了溢出。8位带符号数所能表示的范围是:-128~+127,超出此范围为溢出。运算时的判别方法:用Cs表示:最高位相加产生的进位用Cp表示:次高位相加产生的进位V=CsCpV=1时,发生溢出;V=0时,不溢出。第2章计算机中的数制和编码2.3信息的编码2.3.1二进制编码的十进制数(BCD编码)虽然二进制数对计算机来说是最佳的数制,但是人们却不习惯使用它。为了解决这一矛盾,人们提出了一个比较适合于十进制系统的二进制编码的特殊形式,即将1位十进制的09这10个数字分别用4位二进制码的组合来表示,在此基础上可按位对任意十进制数进行编码。这就是二进制编码的十进制数,简称BCD码(Binary-CodedDecimal)。第2章计算机中的数制和编码最常用的是8421BCD码,这种编码从00001111这16种组合中选择前10个即00001001来分别代表十进制数码09,8、4、2、1分别是这种编码从高位到低位每位的权值。BCD码有两种形式,即压缩型BCD码和非压缩型BCD码。第2章计算机中的数制和编码1.压缩型BCD码压缩型BCD码用一个字节表示两位十进制数。例如,10000110B表示十进制数86。2.非压缩型BCD码非压缩型BCD码用一个字节表示一位十进制数。高4位总是0000,低4位用00001001中的一种组合来表示09中的某一个十进制数。第2章计算机中的数制和编码例2.16设有变量x等于10010110B,当该变量分别为无符号数、原码、补码、压缩型BCD码时,试分别计算变量x所代表的数值大小。解无符号数:x=10010110B=127+026+025+124+023+122+121+020=150原码:[x]原=10010110Bx=-026+025+124+023+122+121+020=-22补码:[x]补=10010110B[x]原=[[x]补]补=11101010Bx=-126+125+024+123+022+121+020=-106BCD码:[x]BCD=10010110Bx=96第2章计算机中的数制和编码2.3.2ASCII字符编码所谓字符,是指数字、字母以及其他一些符号的总称。现代计算机不仅用于处理数值领域的问题,而且要处理大量的非数值领域的问题。这样一来,必然需要计算机能对数字、字母、文字以及其他一些符号进行识别和处理,而计算机只能处理二进制数,因此,通过输入/输出设备进行人机交换信息时使用的各种字符也必须按某种规则,用二进制数码0和1来编码,计算机才能进行识别与处理。第2章计算机中的数制和编码ASCII码(AmericanStandardCodeforInformationInterchange)——美国标准信息交换码。ASCII码用一个字节来表示一个字符,采用7位二进制代码来对字符进行编码
本文标题:第二章-计算机中的数制和码制
链接地址:https://www.777doc.com/doc-4026736 .html