《第二次课 2-计算机中的数制和码.ppt》由会员分享,可在线阅读,更多相关《第二次课 2-计算机中的数制和码.ppt(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第二章第二章 计算机中的数制和码制计算机中的数制和码制 2.1数与数制数与数制 一、数的表示方法与数制一、数的表示方法与数制 二、数制之间的转换(需要掌握)二、数制之间的转换(需要掌握)2.2 二进制无符号数的运算二进制无符号数的运算 2.3 有符号二进制数表示及运算有符号二进制数表示及运算 一、有符号二进制数的表示一、有符号二进制数的表示 二、二、补码的运算规则补码的运算规则 三、三、补码运算溢出补码运算溢出2.4 小数的表示方法小数的表示方法 一、定点表示法一、定点表示法 二、浮点表示法二、浮点表示法2.5 码与码制码与码制 一、一、8241BCD码码 二、二、ASCII字符代码字符代码2
2、.1数与数制数与数制l一、数的表示方法与数制一、数的表示方法与数制不同的计数制采用不同的基本计数符号,例如 数符 基数十进制 0 1 2 3 4 5 6 7 8 9 10二进制 0 1 2八进制 0 1 2 3 4 5 6 7 8十六进制 0 9 A B C D F F 16l一个n位整数和m位小数可表示的实际数值N为:1 1、十进制计数制、十进制计数制2 2、二进制计数制、二进制计数制=3 3、八进制计数制、八进制计数制(123)8=1*82+2*81+3*80 。4 4、十六进制计数制、十六进制计数制 (13A)16=1*162+3*161+A*160 2.1数与数制数与数制二、数制之间的
3、转换(需要掌握)二、数制之间的转换(需要掌握)l1、十进制到任意进制之间的转换、十进制到任意进制之间的转换1)十进制整数到任意进制整数之间的转换)十进制整数到任意进制整数之间的转换总的规则就是总的规则就是:整数部分:十进制数N除以基数X取余数。2.1数与数制数与数制2 3012 3012 2 150150 余数为:余数为:1 1=2 2 7575 余数为:余数为:0 0=2 2 3737 余数为:余数为:1 1=2 2 1818 余数为:余数为:1 1=2 2 9 9 余数为:余数为:0 0=2 2 2 2 余数为:余数为:0 0=2 2 4 4 余数为:余数为:1 1=2 2 1 1 余数为
4、:余数为:0 0=0 0 余数为:余数为:1 1=例例1.1.十进制数十进制数301 301 二进制数二进制数 转换过程如下:转换过程如下:301=100101101B低位低位高位高位2.1数与数制数与数制1616 1818 余数为:余数为:D D=16 16 1 1 余数为:余数为:2 2=16 30116 301 0 0 余数为:余数为:1 1=例例2.2.十进制数十进制数301 301 十六进制数十六进制数转换过程如下:转换过程如下:301=12DH2.1数与数制数与数制2)十进制小数到任意进制小数之间的转换)十进制小数到任意进制小数之间的转换 十进制小数N乘以基数取整数。例 将0.68
5、75转换为二进制小数 将0.6875转换为十六进制小数 2.1数与数制数与数制3)十进制数到非十进制数之间的转换)十进制数到非十进制数之间的转换 如果一个任意十进制数要转换为非十进制数,可以把整数部分和小数部分分别加以转换,然后把转换后的整数部分和小数部分相加。如301.6875=100101101.1011B 301.6875=12D.BH2.1数与数制数与数制l2、非十进制数到十进制数之间的转换、非十进制数到十进制数之间的转换规则:按权展开,按照公式计算例 1101.101 3D.5H 1101.101=1*23+1*22+0*21+1*20+1*2-1+0*2-2+1*2-3=13.62
6、5 3D.5H=3*161+13*160+5*16-1=61.31252.1数与数制数与数制l3八进制、十六进制同二进制间的转换八进制、十六进制同二进制间的转换三位二进制数视为一个八进制位三位二进制数视为一个八进制位,如101为5Q;将四位二进制四位二进制数视为一个十六进制位数视为一个十六进制位1):二二八八 010 111 000 101B=2705Q2):八八二二467Q=100110111B3)二进制二进制 -十六进制数的转换规则十六进制数的转换规则1001001011010.101001111 B 1 2 5 A.A 7 8 H2.1数与数制数与数制例:例:1 0 1 1 0 1 0
7、1 B1 0 1 1 0 1 0 1 B+0 0 0 0 1 1 1 1 B+0 0 0 0 1 1 1 1 B 、1 1 0 0 0 1 0 01 1 0 0 0 1 0 0 B B、1 0 1 1 0 1 0 1 B1 0 1 1 0 1 0 1 B-0 0 0 0 1 1 1 1 B-0 0 0 0 1 1 1 1 B1 0 1 0 0 1 1 01 0 1 0 0 1 1 0 B B1、二进制数的算术运算、二进制数的算术运算 二进制计数制不仅物理实现容易,且运算方法也比二进制计数制不仅物理实现容易,且运算方法也比十进制计数制大为简单,所以计算机中均采用二进制数。十进制计数制大为简单,所
8、以计算机中均采用二进制数。二进制数的算术运算包括加、减、乘、除。二进制数的算术运算包括加、减、乘、除。“逢二进一逢二进一”和减法是和减法是“借一作二借一作二”2.2 二进制无符号数的运算二进制无符号数的运算二进制数的逻辑运算二进制数的逻辑运算二进制数的逻辑运算包括与、或、异或、非四种运算二进制数的逻辑运算包括与、或、异或、非四种运算。1 0 1 1 0 1 0 1 B1 0 1 1 0 1 0 1 B 0 0 0 0 1 1 1 1 B0 0 0 0 1 1 1 1 B1 0 1 1 1 0 1 01 0 1 1 1 0 1 0 B B1 0 1 1 0 1 0 1 B1 0 1 1 0 1
9、0 1 B例:例:0 0 0 0 1 1 1 1 B0 0 0 0 1 1 1 1 B0 0 0 0 0 1 0 10 0 0 0 0 1 0 1 B BX X=1 0 1 1 0 1 0 1 B 1 0 1 1 0 1 0 1 B =0 1 0 0 1 0 1 00 1 0 0 1 0 1 0 B B1 0 1 1 0 1 0 1 B1 0 1 1 0 1 0 1 B 0 0 0 0 1 1 1 1 B0 0 0 0 1 1 1 1 B1 0 1 1 1 1 1 11 0 1 1 1 1 1 1 B B与 或 非 异或AND OR NOT XOR 二进制数的逻辑运算只按位进行运算。二进制数的
10、逻辑运算只按位进行运算。2.2 二进制无符号数的运算二进制无符号数的运算2.3 有符号二进制数表示及运算有符号二进制数表示及运算l一、有符号二进制数的表示一、有符号二进制数的表示 前面我们接触的二进制数均为无符号数,即所有二前面我们接触的二进制数均为无符号数,即所有二进制数位均为数值位,很多情况下都是这样对待的。但进制数位均为数值位,很多情况下都是这样对待的。但在有些情况下,有些数值是带符号的,即可能是正数,在有些情况下,有些数值是带符号的,即可能是正数,也可能是负数。这样就存在一个有符号二进制数的表示也可能是负数。这样就存在一个有符号二进制数的表示方法问题。方法问题。1、数的符号表示法、数的
11、符号表示法l为了表示一个有符号数,除了数值位以外,还应制定为了表示一个有符号数,除了数值位以外,还应制定符号符号位位,通常以这个数的最高位表示符号位。,通常以这个数的最高位表示符号位。符号位符号位0 0:表示正数:表示正数1 1:表示负数:表示负数2.3 有符号二进制数表示及运算有符号二进制数表示及运算2、符号数的表示方法、符号数的表示方法l原码法原码法:如果正数的符号位用如果正数的符号位用0 0表示,负数的符号位用表示,负数的符号位用1 1表示,表示,绝对值的编码规则与前面讲的无符号数编码规则相同,绝对值的编码规则与前面讲的无符号数编码规则相同,这种表示方法称为原码表示法。这种表示方法称为原
12、码表示法。一个数一个数X X的原码记为:的原码记为:原原X数值部分数值部分=绝对值绝对值(用无符号二进制数表示用无符号二进制数表示)符号位符号位 0 0 0 0 0 0 1 1+3+3的表示的表示 =00000011B 原原+32.3 有符号二进制数运算规则有符号二进制数运算规则 1 0 0 0 0 0 1 1-3-3的表示的表示 =10000011B原原-3原原+0原原-0=0 0 0 0 0 0 0 0B=1 0 0 0 0 0 0 0B数数0 0的两种表示方法的两种表示方法对对8 8位有符号二进制数用原码表示的范围:位有符号二进制数用原码表示的范围:正数从正数从00000000 0111
13、111100000000 01111111,+0 +127+0 +127 负数从负数从10000000 1111111110000000 11111111,-0 -127-0 -1272.3 有符号二进制数表示及运算有符号二进制数表示及运算优点:优点:表示简单,易于理解,真值转换方便。表示简单,易于理解,真值转换方便。缺点:缺点:运算麻烦。因为它仅仅是将其值的符号用一运算麻烦。因为它仅仅是将其值的符号用一位二进制数表示,因而它的原码数的位二进制数表示,因而它的原码数的+、-运算完全同笔运算完全同笔算。如两个正数相减,计算机首先要判断被减数的绝对算。如两个正数相减,计算机首先要判断被减数的绝对值
14、与减数的绝对值的大小,然后决定是颠倒过来相减,值与减数的绝对值的大小,然后决定是颠倒过来相减,还是直接相减。最后在结果的前面加上正确的正负号。还是直接相减。最后在结果的前面加上正确的正负号。所以,势必增加运行时间,降低速度,使运算器的逻辑所以,势必增加运行时间,降低速度,使运算器的逻辑复杂化。复杂化。有符号二进制数用原码表示的优缺点:有符号二进制数用原码表示的优缺点:2.3 有符号二进制数表示及运算有符号二进制数表示及运算l反码法:反码法:对于负数,用相应正数的原码各位取反来表示,包括将符对于负数,用相应正数的原码各位取反来表示,包括将符号位取反,取反的含义就是将号位取反,取反的含义就是将0变
15、为变为1,将,将1变为变为0。如:(+45)10=(00101101)2 (-45)10=(11010010)2(+0)反码=0 000,0000=00H(-0)反码=1 111,1111=FFH 注意:注意:用原码法和反码法表示符号数时,数值0有两种表示方法,使用起来不方便。2.3 有符号二进制数表示及运算有符号二进制数表示及运算l补码法(重点)补码法(重点)(1)补码的定义)补码的定义 定义:定义:把某数X加上模数K为 该数X对模K的补码Y补,即 X补补=K+X 当数X用n位二进制数表示时,1位为符号位,(n-1)位数值位,数X的补码定义为:正数补码与其原码相同,只有负数才有求补的问题。所
16、以严格地说,“补码表示法”应称为“负数的补码表示法”。2.3 有符号二进制数表示及运算有符号二进制数表示及运算补补x=,x=1/2 (R=2)M为尾数l一般情况:|M|=1/R 2.4 小数的表示方法小数的表示方法2.4 小数的表示方法小数的表示方法一、一、8241BCD码码 前面讲过,计算机只认识前面讲过,计算机只认识0 0、1 1二进制代码,但人们二进制代码,但人们最习惯的是十进制。为了解决这一矛盾,提出了一个比最习惯的是十进制。为了解决这一矛盾,提出了一个比较适合于十进制系统的二进制代码的特殊形式较适合于十进制系统的二进制代码的特殊形式BCDBCD码码。BCDBCD码码是用四位二进制数表
17、示是用四位二进制数表示1 1位位0 0 9 9的十进制数,的十进制数,而而4 4位二进制数码有位二进制数码有1616种组合,原则上可任选种组合,原则上可任选1010种作为代种作为代码,但为便于记忆和比较直观,最常用的是码,但为便于记忆和比较直观,最常用的是8421BCD8421BCD码码,8 8、4 4、2 2、1 1分别是分别是4 4位二进制数的位权值。位二进制数的位权值。下面给出十进制数和下面给出十进制数和8421BCD8421BCD编码的对应关系。编码的对应关系。2.5 码与码制码与码制1000801117011060101501004001130010200011000008421BC
18、D码十进制数十进制数100192.5 码与码制码与码制 如:如:十进制数和十进制数和BCDBCD码相互转换码相互转换75.4 BCD75.4 BCD码码75.4=BCDBCD码码10000101.010110000101.0101十进制数十进制数=85.5 同一个同一个8 8位二进制代码表示的数,当认为它表示的是二位二进制代码表示的数,当认为它表示的是二进制数和认为它表示的是二进制编码的十进制数,数值是进制数和认为它表示的是二进制编码的十进制数,数值是不相同的。不相同的。如:如:=24=182.5 码与码制码与码制在计算机中,在计算机中,BCDBCD码有两种基本格式码有两种基本格式a.a.组合
19、式组合式BCDBCD码码b.b.分离式分离式BCDBCD码码a.a.组合式组合式BCDBCD码码 两位十进制存放在一个字节中。两位十进制存放在一个字节中。如数如数2424的存放格式:的存放格式:0 0 1 0 0 1 0 02 42.5 码与码制码与码制b.b.分离式分离式BCDBCD码码 每位数存放在每位数存放在8 8位字节的低位字节的低4 4位,位,高高4 4位的内容与数值无关。如位的内容与数值无关。如 数数2424的存放格式:的存放格式:x x x x 0 0 1 0 0 0 1 042 x x x x 0 1 0 0 0 1 0 0二、二、BCD码的加减法运算码的加减法运算 下面我们以
20、组合式下面我们以组合式BCDBCD码格式为例讨论码格式为例讨论BCDBCD码的加减运算。码的加减运算。由于由于BCDBCD编码是将每个十进制数用一组编码是将每个十进制数用一组4 4位二进制数表示,位二进制数表示,若将这种若将这种BCDBCD编码直接交计算机运算,计算机总是把它按二编码直接交计算机运算,计算机总是把它按二进制数处理,所以结果可能出错。进制数处理,所以结果可能出错。2.5 码与码制码与码制如:如:38+49=870 0 1 1 1 0 0 00 1 0 0 1 0 0 11 0 0 0 0 0 0 138498781显然,结果出错。显然,结果出错。出错原因:十进制相加应逢十进一,但
21、计算机按二进制运算,每四位一组,低四位向高四位进位相当十六进制运算,“逢十六进一”。所以当结果超过9时将比正确值少6。解决办法:加六修正2.5 码与码制码与码制 加六修正规则:(1 1)如果两个)如果两个BCDBCD码位相加没有进位,并且结果码位相加没有进位,并且结果9 9,则该位不需修正。则该位不需修正。(2 2)如果两个)如果两个BCDBCD码位相加有进位,或者其结果码位相加有进位,或者其结果1010,该位进行该位进行加六修正。(3 3)低位修正结果使高位)低位修正结果使高位99时,高位进行时,高位进行加六修正。例:例:94+794+7=1011012.5 码与码制码与码制 1 0 0 1
22、 0 1 0 0 941 0 1 0 0 0 0 1 高高4 4位大于位大于9 90 0 0 0 0 1 1 1 71 0 0 1 1 0 1 1 低低4 4位大于位大于9 9+0 0 0 0 0 1 1 0 加六修正+0 1 1 0 0 0 0 0 加六修正+10 0 0 0 0 0 0 1 101结果正确结果正确2.5 码与码制码与码制 减六修正规则:(1 1)如果两个)如果两个BCDBCD码位相减没有借位,则该位不需修正。码位相减没有借位,则该位不需修正。(2 2)如果两个)如果两个BCDBCD码位相减有借位,则该位进行码位相减有借位,则该位进行减六修正。例:例:50502929=212
23、12.5 码与码制码与码制 0 1 0 1 0 0 0 0 500 0 1 0 0 0 0 1 2121结果正确结果正确0 0 1 0 1 0 0 1 290 0 1 0 0 1 1 1 低码位有借位低码位有借位0 0 0 0 0 1 1 0 减六修正2.5 码与码制码与码制二、二、ASCII字符代码字符代码ASCII 美国国家信息标准交换码美国国家信息标准交换码ASCII 用用7位二进制代码对任一字符编码,包括:位二进制代码对任一字符编码,包括:3232个通用控制符个通用控制符0-9 100-9 10个数字个数字5252个英文大小写字母个英文大小写字母3434个专用符号个专用符号共共128128个个要求掌握常用字符的要求掌握常用字符的ASCII码:码:09,AZ,az,空格,回车,换行,空格,回车,换行,Esc2.5 码与码制码与码制