1、Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,二进制表示与运算,二进制表示与运算,二进制与十进制、八进制和十六进制的转换,数的表示(定点小数、定点整数、浮点数),机器码(原码、反码、补码),定点数的运算,2,十进制,由,0,1,2,3,4,5,6,7,8,9,等十个不同的符号来表示数值的一种表示方法,采用逢,10,进,1,的计算方式。例如,253.48=2*10,2,+5*10,1,+3*10,0,+4
2、10,-1,+8*10,-2,显然,任一数字的位置是由,10,的次幂而决定的,这个,10,就是十进制的基数。十进制的特征:,数字的个数等于基数,最大的数字比基数小,1,每个数字都要乘以基数的幂次,而该幂次是由每个数所在的位置决定的,3,为什么数字计算机上要采用二进制,计算机是电子设备,它容易实现的稳定状态有两种,如电路的通或断、电位的高或低。两种稳定状态工作可靠,抗干扰能力强,分别对应着数值和,这就是计算机中使用,二进制数,的理由。,和的不同,编码,组合可以表示一个,数,、一个,字符,或一条操作,指令,。,4,二进制,二进制数,)用和两个,数符,表示两个不同的数。,)逢二进一,即高一位数是低
3、一位数的倍,因此,二进制数,10101.101,的十进制值可用以下方法求出:,(10101.101),2,1,2,4,+0,2,3,+1,2,2,+0,2,1,+1,2,0,+1,2,-1,+0,2,-2,+1,2,-3,16+0+4+0+1+0.5+0+0.125,(21.625),10,5,二进制,二进制:逢二进位的数制系统,基数:,0 1,例,:,(,110),2,12,2,12,1,02,0,(6),10,奇偶数的判断以尾数为准,易于运算,用于表达二进制数所需的物理状态最少,例:,0,999,范围内的数,十进制表示需,310,30,个稳定状态;,二进制表示需,102,20,个稳定状态(
4、2,10,1024,),6,二进制数转换为十进制数,整数部分,:,(k,n,k,n-1,k,2,k,1,),2,=(k,n,2,n-1,+k,n-1,2,n-2,+k,2,2,1,+k,1,),10,小数部分,:,(.k,1,k,2,k,n-1,k,n,),2,=(k,1,2,-1,+k,2,2,-2,+k,n-1,2,-(n-1),+k,n,2,-n,),10,例:,(11001),2,2,4,+2,3,+1=(25),10,(0.101),2,2,-1,+2,-3,=(0.625),10,(101.11),2,2,2,+1+2,-1,+2,-2,=(5.75),10,7,十进制整数转换为
5、二进制数,转换规则:除,2,取余,(x),10,=(k,n,k,n-1,k,2,k,1,),2,=(k,n,2,n-1,+k,n-1,2,n-2,+k,2,2,1,+k,1,),10,k,1,=x,除,2,取余数,,k,2,=(x-k,1,)/2,除,2,取余,,直至商数小于,2,(27),10,=(11011),2,例,:(,20,),10,(,67,),10,(,128,),10,(,10100,),2,(,1000011,),2,(,10000000,),2,8,十进制小数转换为二进制数,转换规则:乘,2,取进位,(x),10,=(.k,1,k,2,k,n-1,k,n,),2,=(k,1
6、2,-1,+k,2,2,-2,+k,n-1,2,n-1,+k,n,2,-n,),10,k,1,=x,乘,2,取进位,,k,2,=(2x-k,1,),乘,2,取进位,,直至余数为,0,例:,(0.125),10,=(0.001),2,0.1252,0.25,进位为,0,0.252,0.5,进位为,0,0.52,1,进位为,1,,余数为,0,,计算结束,练习:,(0.625),10,=,(0.101),2,(23.25),10,=,(10111.01),2,9,八进制与十六进制,在计算机中应用二进制有一系列的优点,但写起来位数太多,读起来也比较麻烦,为了读写方便,往往采用八进制和十六进制作为二进
7、制的过渡方式。,八进制:用,0,,,1,,,2,,,3,,,4,,,5,,,6,,,7,八个数符。采用,“,逢八进一,”,的计数方法。,十六进制:用,0,,,1,,,2,,,3,,,4,,,5,,,6,,,7,,,8,,,9,,,A,,,B,,,C,,,D,,,E,,,F,十六个数符。采用,“,逢十六进一,”,的计数方法。,10,二进制数与八进制的转换,一位八进制数相当于三位二进制数,即有如下的对应关系:,转换的方法是:由小数点开始向左把二进制整数按每三位一划分,同理,由小数点开始向右把二进制小数按每三位一划分,不足三位的用,0,补齐,然后写出其相应的八进制数。,八进制数,0,1,2,3,4,
8、5,6,7,二进制数,000,001,010,011,100,101,110,111,11,二进制数与八进制的转换,转换的方法是:由小数点开始向左把二进制整数按每三位一划分,同理,由小数点开始向右把二进制小数按每三位一划分,不足三位的用,0,补齐,然后写出其相应的八进制数。,【,例,】(10001101.1101),2,(),8,八进制数,0,1,2,3,4,5,6,7,二进制数,000,001,010,011,100,101,110,111,12,八进制与二进制数的转换,转换的方法是:这是上述转换的逆过程。将八进制数的每一位用相应的三位二进制数写出即可。,【,例,】(325.46),8,()
9、2,解,3 2 5 .4 6,011 010 101.100 110,八进制数,0,1,2,3,4,5,6,7,二进制数,000,001,010,011,100,101,110,111,13,二进制数与十六进制数的转换,一位十六进制数相当于四位二进制数,即有如下对应关系:,十六进制,0,1,2,3,4,5,6,7,二进制数,0000,0001,0010,0011,0100,0101,0110,0111,十六进制,8,9,A,B,C,D,E,F,二进制数,1000,1001,1010,1011,1100,1101,1110,1111,14,二进制数与十六进制数的转换,转换的方法是:由小数点开始
10、向左把二进制整数按每四位一划分,同理,由小数点开始向右把二进制小数按每四位一划分,不足四位用,0,补齐,然后写出其相应的十六进制数。,【,例,】(11110111101.01),2,(),16,解,0111,1011,1101,.,0100,7,D,.,4,所以,(11110111101.01),2,(7BD.4),16,15,二进制数与十六进制数的转换,将十六进制数的每一位用相应的四位二进制数写出。,【,例,】(23.F),16,(),2,解,2,3 .,F,0010,0011.,1111,所以,(23.F),16,(100011.1111),2,16,非十进制到十进制数的转换,非十进制,数
11、转换成,十进制,数,其方法以上已经介绍过了,即把,非十进数按,位权,展开并,求和,。,例如:,(32CF.4B),16,(),10,(32CF.4B),16,3,16,3,2,16,2,12,16,1,15,16,0,4,16,-1,11,16,-2,12288,512,192,15,0.25,0.04296875,(13007.29296875),10,17,二、八、十六进制对照表,二进制数,八进制数,000,0,001,1,010,2,011,3,100,4,101,5,110,6,111,7,表,1.1,二、八进制数字对照表,表,1.2,二、十六进制数字对照表,二进制数,十六进制数,二进
12、制数,十六进制数,0000,0,1000,8,0001,1,1001,9,0010,2,1010,A,0011,3,1011,B,0100,4,1100,C,0101,5,1101,D,0110,6,1110,E,0111,7,1111,F,18,数制转换小结,1.,非十进制数转换成十进制数,方法:,把非十进数,按位权展开,并,求和,。,2.,十进制数转换为非十进制数,(,1,)十进制,整数,转换为非十进制,整数,方法:,除以基数,直至商为,取其余数,倒排。,19,(,2,)十进制,小数,转换为非十进制,小数,8 4 2 1,2,3,2,2,2,1,2,0,1,1,1,1,方法:,乘以基数,直
13、至小数部分为,0,,取其整数,顺排。,3.,非十进制之间互相转换,(,1,)二进制数与八进制数间互换,一位八进制数相当于三位二进制数,(,2,)二进制数与十六进制数间互换,一位十六进制数相当于四位二进制数,20,练习,十进制转换为二进制:,83.25,,,56.38,二进制转换为十进制:,11010011.001011,八进制转换为二进制:,265.73,二进制转换为八进制:,11010011.1101,十六进制转换为二进制:,3FD.6C,二进制转换为十六进制:,11011110.11,十进制转换为八进制:,593.92,八进制转换为十进制:,67.76,21,练习,十进制转换为十六进制:,
14、85.58,十六进制转换为十进制:,7C.C7,八进制转换为十六进制:,56.65,十六进制转换为八进制:,5B.B5,22,数的定点与浮点表示,一个十进制数,123.456,可以表示为,123.456=0.123456*10,3,数,0.000456,可以表示为:,0.000456=0.456*10,-3,类似地,对于二进制数,10011.101,也可以这样表示为:,10011.101=2,101,*0.10011101,23,数的定点与浮点表示,一般地,任意一个二进制数,N,可表示为:,N=2,j,*S,其中,j,是二进制整数位数;,S,是二进制小数,,j,称为数,N,的,阶码,,,S,为
15、数,N,的,尾数,。尾数,S,表示数,N,的全部有效数字,阶码,j,指明了小数点的位置。,24,数的定点与浮点表示,一般地,任意一个二进制数,N,可表示为:,N=2,j,*S,对任何一个数,若阶码,j,是固定不变的,则把这种表示法称为,定点表示,,这样的数称为,定点数,。反之,如果,j,可以取不同值,则把这种表示称为数的,浮点表示,,这样的数称为,浮点数,。,25,数的定点与浮点表示,一般地,任意一个二进制数,N,可表示为:,N=2,j,*S,如果对任何数,j=0,,则该定点数只能表示小数。这种表示法是一种常用的方法,以后我们讨论问题时,除非特别说明,否则都采用这种表示方法。,26,数的定点与
16、浮点表示,如果计算机中的数采用定点表示,则计算机中数的小数点是固定的,这种计算机叫定点计算机;如果计算机中的数采用浮点表示,这时机器中数的小数是可以变化的,这种计算机叫浮点计算机。,27,数的机内表示,定点小数,定点小数:,数符,数值,数符:,0,正,,1,负,例:,+0.001101,0,0,0,1,1,0,1,0,-0.1010,1,1,0,1,0,0,0,0,若机器字长为,n,,则定点小数的数值表示范围为:,2,-(n-1),=|x|=1-2,-(n-1),小数点,有关机器码及其运算的介绍均以定点小数为例,28,数的机内表示,定点整数,无符号整数:,数值位,字长为,n,时,无符号整数的表
17、达范围为,0,2,n,-1,有符号整数:,数符,数值,字长为,n,时,有符号整数的表达范围为,|x|=2,n,1,-1,29,数的机内表示,浮点数,浮点数:,阶符,阶码,数符,尾数,将数,x,表示为,s2,j,的形式,其中,s,为,x,的小数形式(尾数),-110.11=-0.110112,11,0,11,1,11011,设阶码共,m,位,尾数共,n-1,位,则浮点数的表示范围为:,2,-(2,m,-1),2,-1,=|x|x=0,1-x,或,1+|x|0 x-1,物理意义:将,x,表示为定点小数,例:,x=+0011011 x,原,00011011,x=-1000110 x,原,110001
18、10,39,机器码,原码,原码表示法简单易懂,与真值的转换方便。,运算:当两个数作加法运算时,如果两数码符号相同,则数值相加,符号不变;如果两数符号不同,数值部分实际上是进行相减。这时,必须比较两个数哪个绝对值大,才能决定谁减谁。这件事在手算时容易解决,但计算机中执行却比较麻烦,增加了计算复杂性,效率会降低。,40,机器码,反码,所谓反码,就是把二进制数的各位数码,,0,变为,1,,,1,变为,0,。,数学定义:,x,反,=,x 1x=0,2-2,-n,+x 0=x-1,物理意义:正数反码等于原码,负数反码等于原码各数码位取反,例:,x=+0011011 x,原,00011011 x,反,00
19、011011,x=-1000110 x,原,11000110 x,反,10111001,41,机器码,补码,3,9,取模运算:整除模数后取余数,例:,45 mod 12=9 3 mod 12=3 5 mod 3=2,模:一个计算系统的最大容量,定点小数机器码以,2,为模,-3,9(mod 12),42,机器码,补码,数学定义:,x,补,=,x 1x=0,2+x,或,2-|x|,或,x,反,+2,-n,0 x-1,物理意义:正数补码等于原码,负数补码等于反码最低位加,1,例:,x=+0011011,x,原,00011011 x,反,00011011 x,补,00011011,x=-1000110
20、x,原,11000110 x,反,10111001 x,补,10111010,43,示例,已知,X=0.125,,求它的原码、反码和补码,X,原,=0.001X,反,=0.001X,补,=0.001,已知,X=-0.25,,求它的原码、反码和补码,X,原,=1.010X,反,=2-2,-n,+X=1.101,X,补,=2-|X|=1.110X,补,=X,反,+2,-n,44,示例,已知,X,补,=1.1011,,求它的反码和原码,解:因为,X,补,=X,反,+2-n,所以,X,反,=X,补,2-n,=1.1011,2-n,=1.1010,故,X,原,=1.0101,45,定点数加(减)法,当
21、数值用补码形式表示时,可用加法完成减法运算。这样,在计算机的计算器中只要有一个加法器,而不必为了实现减法或负数而再配一个减法器。,补码加法公式为:,X,补,+Y,补,=X+Y,补,(mod 2),以上形式的正确性可以得到证明,其条件为,|X|1,|Y|1,|X+Y|1,46,定点数加(减)法,定点补码加(减)法:,x,补,+y,补,=x+y,补,,,|x|1,|y|1,|x+y|1,例:,00100000 (+0.01),2,=(+0.25),10,+11110000 (-0.001),2,=(-0.125),10,100010000 (+0.001),2,=(+0.125),10,机器数的表
22、达范围有限,两数之和超出表示范围时,产生溢出(,overflow,),例:,01100101,01000011,10101000,正数相加,结果为负数,47,定点乘法,符号位:两数相乘,.,符号位相加。,0+0=0,1+0=0+1=1,1+1=1 0,数值部分:原码相乘,0.101,0.011,101,101,+000,0.001111,0.000,累加器初值为,0,+0.101,乘数末位为,1,,加被乘数,0.101,部分积,0.010 1,部分积右移一位,+0.101,乘数倒数第二位为,1,,加被乘数,0.111,第二次部分积,0.011 11,第二次部分积右移一位,+0.000,乘数最高位为,0,,加,0,0.011,第三次部分积,0.001 111,第三次部分积右移一位,得结果,48,本章作业,将十制数,213,和,69.625,分别转换为二、八、十六进制表示。,将十六进制数,E6.6,分别转换为二、八、十进制表示。,假定某台计算机的机器数占,8,位,请写出,-67,和,55,的原码、反码和补码表示,并使用补码实现这两个数的加法运算,即,55-67,。,49,






