《计算机中数据的表示及其运算.ppt》由会员分享,可在线阅读,更多相关《计算机中数据的表示及其运算.ppt(50页珍藏版)》请在金锄头文库上搜索。
1、计算机中数据的表示及其运算计算机进行数据处理时,首先要将相应的数据输入到计算机中,并以一定的形式存储在计算机中。计算机内部是一个二进制数字世界,所以,不管是数值数据数值数据还是非数是非数值数据值数据,都必须转换成二进制数的形式,才能存入计算机中。数值数据数值数据 有确定的值并在数轴上有对应的点。 是非数值数据是非数值数据 非数值数据没有确定的值,如字符、文字、图像、声音、逻辑数据等。3 3)计算机中采用二进制的原因)计算机中采用二进制的原因(1)物理实现容易,(2)二进制运算简单,(3)机器可靠性高,(4)通用性强 图4.25 各种数据在计算机中的转换过程431 进位计数制1) 进位计数制进位
2、计数制任何一种计数制,都具有以下三个要点:(1)数制使用的数码。十进制含10个数码:;二进制含个数码:,等。(2)进位规则。十进制为逢十进一;二进制为逢二进一等。(3)每一个数位上数码所具有的权。十进制数码各位的权是以10为底的幂,二进制数码各位的权是以为底的幂。例如,数828.8的值为8102+2101+8100+810-1其中,102、101、100、10-1称为权。对于任何一个十进数N,都可以表示成按权展开的多项式:N=dn10n+dn-110n-1+d1101+d0100+d-110-1+d-m10-m = di10i其中,di是09十个数字中的任意一个,m、n是正整数,10被称为十进
3、制数的基数,它是相邻数位的权之比。一般而言,对于用R进制表示的数N(R为任意正整数),可以按权展开为:N=KnRn+Kn-1Rn-1+K1R1+K0R0+K-1R-1+K-mR-m = KiRi其中,Ki是0,1,(R-1)个数字中的任意一个,m、n是正整数,R是基数。表4.1列出了计算机中常用的四种进位计数制。其中十六进制中的A,B,C,D,E,F分别相当于十进制中10,11,12,13,14,15的值。进位制二进制八进制十进制十六进制规则逢二进一借一当二逢八进一借一当八逢十进一借一当十逢十六进一借一当十六基数R=2R=8R=10R=16数符0,10,1,2,70,1,2,90,1,2,9A
4、,B,C,D,E,F权2i8i10i16i形式表示BODH 在十进制中,如将某数的各位向左移动1位,则其值增大到原来的十倍;如将某数的各位向右移动1位,则其值减少到原来的十分之一。同样,在二进制中,如将数的各位向左移动1位,则其值增大到原来的二倍;反之将数的各位向右移动1位,则其值减少到原来的二分之一。例如,二进数101011.1在左移1位或右移1位后,其值的变化如下: 二进数 值 101011.1 43.5向左移1位 1010111.0 87向右移1位 10101.11 21.752) 不同进位计数制之间的转换不同进位计数制之间的转换 转换所依据的原则是:如果两个数的值相等,则两数的整数部分
5、和小数部分的值一定分别相等。(1)二进制、八进制和十六进制数转换为十进制数。任意R进制数转换成十进制数比较简单,只需按权展开然后相加,其和便是相应的十进制数。这种方法称为按权相加法。【例4-1】求与(11011.01)2等值的十进数解:(11011.01)2=124+123+022+121+120+02-1+12-2=16+8+0+1+0+0.25=(27.25)10【例4-2】将十六进制数35B转换成十进数.解:(35B)16=3162+5161+11160=768+80+11=(859)10(2)十进制数转换成二进制数、八进制或十六进制数整数部分:除基取余法【例4-3】把18转换成二进制数
6、。解:218余0(K0)2 9余1(K1)24余0(K2)22余0(K3)21余1(K4)0所以(18)10=(10010)2小数部分:乘基取整法 【例4-4】将(0.8125)10转换成二进制数。解:0.812521.62501(K-1)21.25001(K-2)20.50000(K-3)21.00001(K-4)所以(0.8125)10=(0.1101)2(3)二进制数与八进制数的相互转换二进制数转换成八进制数的方法可以概括为“三位并一位”;八进制数转换成二进制数的方法可以概括为“一位拆三位”; 【例4-6】将(11101.1101)2转换成八进制数。解:011101.1101003564
7、所以(11101.1101)2=(35.64)8(4)二进制数与十六进制数的相互转换二进制数转换成十六进制数的方法可以概括为“四位并一位”;十六进制数转换成二进制数的方法可以概括为“一位拆四位”;【例4-7】将(25.C4)16转换成二进制数。解:25.C40010010111000100所以(25.C4)16=(100101.110001)2表表4.2列出了二、八、十、十六进制数之间的对应关系。列出了二、八、十、十六进制数之间的对应关系。432 机器数 一个数在计算机内部表示成的二进制形式称为机器数机器数,原来的数称为这个机器数的真值真值。机器数具有下列特点:(1)由于计算机设备的限制,机器
8、数有固定的位数,它所表示的数受到计算机固有位数的限制,所以机器数具有一定的范围,超过这个范围便会发生溢出。(2)机器数将其真值的符号数字化。计算机中使用具有两个不同状态的电子器件,它们只能分别表示数字符号“0”和“1”。所以,数的正负号也只能通过0和1来加以区分。通常,用机器数中规定的符号位(一般是一个数的最高位)取0或1分别表示其值的正或负。(3)机器数中依靠格式上的约定表示小数点的位置。1)数据的符号表示问题)数据的符号表示问题机器数在参与运算时,若将符号位和数值一起进行运算,有时会产生错误的结果。例如,6+4的结果应为2,但按上述方法,则运算如下:100001106的机器数+000001
9、004的机器数10001010结果为10常用的几种机器数符号表示方法:原码、补码、反码、移码。(1)原码表示法 原码表示的规则是:最左边一位表示数的符号,且以“0”表示正号,“1”表示负号;其余各位表示数的大小,即其绝对值。例如,假设机器数的位数是8,则+73原=0100100173原=11001001+127原=01111111127原=11111111对于真值0而言,可以被认为是+0,也可被认为是0。+0=00000000,0=10000000,所以数0的原码不唯一,有“正零”和“负零”之分。 原码表示简单易懂,与真值转换方便,用于乘除运算十分方便。(2)补码表示法模模的概念:“模模”是指
10、一个计量系统的计数范围。例如:时钟的模为12,计量范围是011。若时钟指向11,则再过1小时,时钟将指向0(即12)。n位计算机的模为2n,计量范围是02n-1。设n=4,模为24=16,计量范围是015(二进制表示为00001111)。若当前值是1111,则再加1,计数值就变为0000,而在最高位上溢出了一个“1”。任何有模的计量器,均可化减法为加法运算。只需把减数用相应的补码表示就可将减法运算化为加法运算。对于整数而言,若计算机字长为n位,则X0X2n-1X补=2n+X2n-1X0时,最大值为X补=01111111=+127;当X0时,绝对值最大为X补=10000000=-27=-128。
11、所以8位整数的表示范围是-128+127。数0的补码表示是唯一的,即0补=+0补=-0补=00000000真值与补码简便转换方法1.对正数而言,补码与真值相同;2.对负数而言,符号位取1,其它各位取反、末位加1;【例4-8】求36的补码。解:第1步:将36表示成二进制数00100100第2步:符号位取1,其余各位取反得11011011第3步:末位加1,结果为11011100所以36补=11011100【例4-9】求11110110补的真值。解:第1步:除符号位外,各位取反得10001001第2步:末位加1,结果为10001010所以真值为(0001010)2,即(10)10根据补码定义,可以证
12、明X补+Y补=X+Y补X补- Y补=X-Y补这表明,两个补码加减的结果也是补码,而且在运算时,符号位可同数值部分作为一个整体参加运算,如果符号位有进位,则舍去进位。【例4-10】设a=4,b=6,请用补码求和方法计算(ab)。解:因为a补=00000100,b补=11111010且ab补=a补+b补=00000100+11111010=11111110所以(ab)= 2 采用了补码表示法后,加法和减法统一成了加法运算,可以大大简化计算机运算部件的电路设计,所以现代计算机中都使用补码形式的机器数。前已述及,利用“求反加1”的方法可以得到负数的补码。如在上述方法中,只求反而不加1,就得到另一种机器
13、数的表示,这就是反码表示法。反码定义为:X0X2(n-1)X反=(2n1)+X2(n-1)X0 反码表示很少直接用于计算中。反码主要被用作真值求补码的一个过渡手段。(3)反码表示法(4)移码表示法对于n位整数,移码定义为X移=2(n-1)+X2(n-1)X0”的值取“真”还是取“假”视X的当时值而确定。 逻辑代数(布尔Boole代数) 是指以代数形式研究逻辑变量及其之间关系的性质和应用的科学。实际上是一种符号逻辑,所表达和演算的是事物内部的逻辑关系。逻辑常量逻辑常量和逻辑变量逻辑变量也分别称为布尔常量布尔常量和布尔变量布尔变量。 最基本的布尔运算有三种:逻辑非、逻辑与、逻辑或运算。其他运算可以
14、用这三种基本运算表示。 逻辑非逻辑非即逻辑否定,运算规则为: =1 , =0逻辑与逻辑与即逻辑乘,用“”(读作“并且”或“与”)表示逻辑与运算。运算规则为: 00=0 01=0 10=011=1 有时也用“”(甚至省略)、“”或“AND”作为逻辑与的运算符,写成AB、AB或AANDB。逻辑或逻辑或即逻辑加。通常用“”(读作“或”)表示逻辑或运算。运算规则为: 00=0 01=1 10=1 11=1有时也用“+”或“OR”作为逻辑或的运算符,写成A+B或A OR B。 逻辑异或逻辑异或运算表示为AB。异或运算可以用基本逻辑运算表示:AB=A+B异或运算的规律是:00=001=110=111=0有
15、时也用“XOR”(ExclusiveOR)作为异或的运算符,写成AXORB。逻辑常量、逻辑变量、逻辑运算符、括号等适当地连接起来构成的表达式称为逻辑表达式逻辑表达式(或称为布尔表达式布尔表达式)。例如A+BC,A+等都是逻辑表达式,这里的A、B、C都是逻辑变量。在逻辑表达式中,规定逻辑运算的优先级按括号,逻辑非,逻辑与,逻辑或的次序递减。在逻辑运算中,把逻辑变量的各种可能组合与对应的运算结果列成表格,这样的表格称为真值表真值表。它是一种全面描述逻辑运算关系的工具。表4。4是几种基本逻辑运算的真值表。【例1-15】设A=00110101,B=00001111,计算AB。00110101)0000111100000101所以AB=00000101两个二进制数可以进行按位逻辑运算。 若将A中代码看作是字符“5”的ASCII码,则与B进行“按位逻辑与”运算后得到的是该字符对应的数值5。