《二进制表示与运算.ppt》由会员分享,可在线阅读,更多相关《二进制表示与运算.ppt(49页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、二进制表示与运算二进制表示与运算 10/17/20222二进制表示与运算 二进制与十进制、八进制和十六进制的转换二进制与十进制、八进制和十六进制的转换 数的数的表示(定点小数、定点整数、浮点数)表示(定点小数、定点整数、浮点数)机器码(原码、反码、补码)机器码(原码、反码、补码)定点数的运算定点数的运算3十进制十进制由由0,1,2,3,4,5,6,7,8,90,1,2,3,4,5,6,7,8,9等十个不同等十个不同的符号来表示数值的一种表示方法,采用逢的符号来表示数值的一种表示方法,采用逢1010进进1 1的计算方式。例如的计算方式。例如253.48=2*10253.48=2*102 2+5*
2、10+5*101 1+3*10+3*100 0+4*10+4*10-1-1+8*10+8*10-2-2显然,任一数字的位置是由显然,任一数字的位置是由1010的次幂而决定的,的次幂而决定的,这个这个1010就是十进制的基数。十进制的特征:就是十进制的基数。十进制的特征:l数字的个数等于基数数字的个数等于基数l最大的数字比基数小最大的数字比基数小1 1l每个数字都要乘以基数的幂次,而该幂次是由每个每个数字都要乘以基数的幂次,而该幂次是由每个数所在的位置决定的数所在的位置决定的4为什么数字计算机上要采用二进制为什么数字计算机上要采用二进制计算机是电子设备,它容易实现的稳定状计算机是电子设备,它容易
3、实现的稳定状态有两种,如电路的通或断、电位的高或态有两种,如电路的通或断、电位的高或低。两种稳定状态工作可靠,抗干扰能力低。两种稳定状态工作可靠,抗干扰能力强,分别对应着数值和,这就是计算强,分别对应着数值和,这就是计算机中使用机中使用二进制数二进制数的理由。的理由。和的不同和的不同编码编码组合可以表示一个组合可以表示一个数数、一个一个字符字符或一条操作或一条操作指令指令。5二进制二进制数二进制数 )用和两个)用和两个数符数符表示两个不同的数。表示两个不同的数。)逢二进一,即高一位数是低一位数的倍)逢二进一,即高一位数是低一位数的倍 因此,二进制数因此,二进制数10101.10110101.1
4、01的十进制值可用以下的十进制值可用以下方法求出:方法求出:(10101.101)2124+023+122+021+120+12-1+02-2+12-316+0+4+0+1+0.5+0+0.125(21.625)106二进制 二进制:逢二进位的数制系统 基数:0 1例:(110)2122121020(6)10 奇偶数的判断以尾数为准 易于运算 用于表达二进制数所需的物理状态最少例:0999范围内的数,十进制表示需31030个稳定状态;二进制表示需10220个稳定状态(2101024)7二进制数转换为十进制数 整数部分:(knkn-1k2k1)2=(kn2n-1+kn-12n-2+k221+k1
5、)10 小数部分:(.k1 k2 kn-1kn)2=(k12-1+k22-2+kn-12-(n-1)+kn 2-n)10 例:(11001)224+23+1=(25)10(0.101)22-1+2-3=(0.625)10(101.11)222+1+2-1+2-2=(5.75)108十进制整数转换为二进制数 转换规则:除2取余 (x)10=(knkn-1k2k1)2=(kn2n-1+kn-12n-2+k221+k1)10k1=x除2取余数,k2=(x-k1)/2除2取余,直至商数小于2(27)10=(11011)2例:(20)10 (67)10 (128)10(10100)2(1000011)2
6、(10000000)29十进制小数转换为二进制数 转换规则:乘2取进位 (x)10=(.k1 k2 kn-1kn)2=(k12-1+k22-2+kn-12n-1+kn 2-n)10k1=x乘2取进位,k2=(2x-k1)乘2取进位,直至余数为0例:(0.125)10=(0.001)20.12520.25 进位为00.2520.5 进位为00.521 进位为1,余数为0,计算结束练习:(0.625)10=(0.101)2(23.25)10=(10111.01)210八进制与十六进制在计算机中应用二进制有一系列的优点,在计算机中应用二进制有一系列的优点,但写起来位数太多,读起来也比较麻烦,但写起来
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十六个数符。采用十六个数符。采用“逢逢十六进一十六进一”的计数方法。的计数方法。11二进制数与八进制的转换一位八进制数相当于三位二进制数,即有一位八进制数相当于三位二进制数,即有如下的对应关系:如下的对应关系:转换的方法是:由小数点开始向左把
8、二进转换的方法是:由小数点开始向左把二进制整数按每三位一划分,同理,由小数制整数按每三位一划分,同理,由小数点开始向右把二进制小数按每三位一划点开始向右把二进制小数按每三位一划分,不足三位的用分,不足三位的用0补齐,然后写出其相补齐,然后写出其相应的八进制数。应的八进制数。八八进制数制数01234567二二进制数制数 000 001 01001110010111011112二进制数与八进制的转换转换的方法是:由小数点开始向左把二进转换的方法是:由小数点开始向左把二进制整数按每三位一划分,同理,由小数制整数按每三位一划分,同理,由小数点开始向右把二进制小数按每三位一划点开始向右把二进制小数按每三
9、位一划分,不足三位的用分,不足三位的用0补齐,然后写出其相补齐,然后写出其相应的八进制数。应的八进制数。【例例】(10001101.1101)2()8八八进制数制数01234567二二进制数制数 000 001 01001110010111011113八进制与二进制数的转换转换的方法是:这是上述转换的逆过程。转换的方法是:这是上述转换的逆过程。将八进制数的每一位用相应的三位二进将八进制数的每一位用相应的三位二进制数写出即可。制数写出即可。【例例】(325.46)8()2解解 3 2 5 .4 6 011 010 101.100 110八八进制数制数01234567二二进制数制数 000 001
10、 01001110010111011114二进制数与十六进制数的转换一位十六进制数相当于四位二进制数,即一位十六进制数相当于四位二进制数,即有如下对应关系:有如下对应关系:十六十六进制制 01234567二二进制数制数0000 0001 0010 0011 0100 0101 0110 0111十六十六进制制 89ABCDEF二二进制数制数1000 1001 1010 1011 1100 1101 1110 111115二进制数与十六进制数的转换转换的方法是:由小数点开始向左把二进转换的方法是:由小数点开始向左把二进制整数按每四位一划分,同理,由小数点制整数按每四位一划分,同理,由小数点开始向
11、右把二进制小数按每四位一划分,开始向右把二进制小数按每四位一划分,不足四位用不足四位用0 0补齐,然后写出其相应的十补齐,然后写出其相应的十六进制数。六进制数。【例【例2()16 解解 0111 1011 1101.0100 7 D .4 所以所以 2(7BD.4)1616二进制数与十六进制数的转换将十六进制数的每一位用相应的四位二进将十六进制数的每一位用相应的四位二进制数写出。制数写出。【例】【例】(23.F)16()2 解解 2 3 .F 0010 0011.1111 所以所以 (23.F)16(100011.1111)217非十进制到十进制数的转换非十进制非十进制数转换成数转换成十进制十
12、进制数数 其方法以上已经介绍过了,即把其方法以上已经介绍过了,即把非十进数按非十进数按位权位权展开并展开并求和求和。例如:例如:(32CF.4B)16()10 (32CF.4B)16 316321621216115160416-11116-2 12288512192150.250.04296875 (13007.29296875)1018二、八、十六进制对照表二进制数二进制数八进制数八进制数00000011010201131004101511061117表表1.1 二、八进制数字对照表二、八进制数字对照表表表1.2 二、十六进制数字对照表二、十六进制数字对照表二进制数二进制数十六进制数十六进制
13、数二进制数二进制数十六进制数十六进制数00000100080001110019001021010A001131011B010041100C010151101D011061110E011171111F19数制转换小结数制转换小结1.非十进制数转换成十进制数非十进制数转换成十进制数 方法:方法:把非十进数把非十进数按位权展开按位权展开并并求和求和。2.十进制数转换为非十进制数十进制数转换为非十进制数 (1 1)十进制)十进制整数整数转换为非十进制转换为非十进制整数整数 方法:方法:除以基数,直至商除以基数,直至商为,取其余数,倒排。为,取其余数,倒排。20(2 2)十进制)十进制小数小数转换为非十
14、进制转换为非十进制小数小数 8 4 2 1 23 22 21 20 1 1 1 1方法:方法:乘以基数,直至小数部乘以基数,直至小数部分为分为0,取其整数,顺排。,取其整数,顺排。3.非十进制之间互相转换非十进制之间互相转换(1 1)二进制数与八进制数间互换)二进制数与八进制数间互换 一位八进制数相当于三位二进制数一位八进制数相当于三位二进制数(2 2)二进制数与十六进制数间互换)二进制数与十六进制数间互换 一位十六进制数相当于四位二进制数一位十六进制数相当于四位二进制数21练习练习十进制转换为二进制:十进制转换为二进制:83.25,56.38二进制转换为十进制:二进制转换为十进制:11010
15、011.001011八进制转换为二进制:八进制转换为二进制:265.73二进制转换为八进制:二进制转换为八进制:11010011.1101十六进制转换为二进制:十六进制转换为二进制:3FD.6C二进制转换为十六进制:二进制转换为十六进制:11011110.11十进制转换为八进制:十进制转换为八进制:593.92八进制转换为十进制:八进制转换为十进制:67.7622练习练习十进制转换为十六进制:十进制转换为十六进制:85.58十六进制转换为十进制:十六进制转换为十进制:7C.C7八进制转换为十六进制:八进制转换为十六进制:56.65十六进制转换为八进制:十六进制转换为八进制:5B.B523数的定
16、点与浮点表示数的定点与浮点表示一个十进制数一个十进制数123.456可以表示为可以表示为123.456=0.123456*103数数0.000456可以表示为:可以表示为:0.000456=0.456*10-3类似地,对于二进制数类似地,对于二进制数10011.101也可以这也可以这样表示为:样表示为:10011.101=2101*0.1001110124数的定点与浮点表示数的定点与浮点表示一般地,任意一个二进制数一般地,任意一个二进制数N可表示为:可表示为:N=2j*S其中其中j是二进制整数位数;是二进制整数位数;S是二进制小数,是二进制小数,j称为数称为数N的的阶码阶码,S为数为数N的的尾
17、数尾数。尾数。尾数S表示数表示数N的全部有效数字,阶码的全部有效数字,阶码j指明了小指明了小数点的位置。数点的位置。25数的定点与浮点表示数的定点与浮点表示一般地,任意一个二进制数一般地,任意一个二进制数N可表示为:可表示为:N=2j*S对任何一个数,若阶码对任何一个数,若阶码j是固定不变的,则是固定不变的,则把这种表示法称为把这种表示法称为定点表示定点表示,这样的数称,这样的数称为为定点数定点数。反之,如果。反之,如果j可以取不同值,则可以取不同值,则把这种表示称为数的把这种表示称为数的浮点表示浮点表示,这样的数,这样的数称为称为浮点数浮点数。26数的定点与浮点表示数的定点与浮点表示一般地,
18、任意一个二进制数一般地,任意一个二进制数N可表示为:可表示为:N=2j*S如果对任何数如果对任何数j=0,则该定点数只能表示小,则该定点数只能表示小数。这种表示法是一种常用的方法,以后数。这种表示法是一种常用的方法,以后我们讨论问题时,除非特别说明,否则都我们讨论问题时,除非特别说明,否则都采用这种表示方法。采用这种表示方法。27数的定点与浮点表示数的定点与浮点表示如果计算机中的数采用定点表示,则计算如果计算机中的数采用定点表示,则计算机中数的小数点是固定的,这种计算机叫机中数的小数点是固定的,这种计算机叫定点计算机;如果计算机中的数采用浮点定点计算机;如果计算机中的数采用浮点表示,这时机器中
19、数的小数是可以变化的,表示,这时机器中数的小数是可以变化的,这种计算机叫浮点计算机。这种计算机叫浮点计算机。28数的机内表示数的机内表示 定点小数定点小数 定点小数:定点小数:数符数符 数值数值 数符:数符:0正,正,1负负例:例:+0.00110100011010-0.101011 010000 若若机器字长为机器字长为n,则定点小数的数值表示范围为:则定点小数的数值表示范围为:2-(n-1)=|x|=1-2-(n-1)小数点小数点 有关机器码及其运算的介绍均以定点小数为例有关机器码及其运算的介绍均以定点小数为例29数的机内表示数的机内表示 定点整数定点整数 无符号整数:无符号整数:数值位数
20、值位 字长为字长为n时,无符号整数的表达范围为时,无符号整数的表达范围为 02n-1 有符号整数:有符号整数:数符数符数值数值 字长为字长为n时,有符号整数的表达范围为时,有符号整数的表达范围为|x|=2n1-130数的机内表示数的机内表示 浮点数浮点数 浮点数:浮点数:阶符阶符阶码阶码数符数符尾数尾数 将数将数x表示为表示为 s2j的形式,其中的形式,其中s为为x的小数形式(尾数)的小数形式(尾数)-110.11=-0.11011211011111011 设设阶码共阶码共m位,尾数共位,尾数共n-1位,则浮点数的表示范围为:位,则浮点数的表示范围为:2-(2m-1)2-1=|x|x=0 1-
21、x 或或 1+|x|0 x-1 物理意义:将物理意义:将x表示为定点小数表示为定点小数例:例:x=+0011011 x原原00011011 x=-1000110 x原原1100011040机器码机器码原码原码原码表示法简单易懂,与真值的转换方便。原码表示法简单易懂,与真值的转换方便。运算:当两个数作加法运算时,如果两数码运算:当两个数作加法运算时,如果两数码符号相同,则数值相加,符号不变;如果两符号相同,则数值相加,符号不变;如果两数符号不同,数值部分实际上是进行相减。数符号不同,数值部分实际上是进行相减。这时,必须比较两个数哪个绝对值大,才能这时,必须比较两个数哪个绝对值大,才能决定谁减谁。
22、这件事在手算时容易解决,但决定谁减谁。这件事在手算时容易解决,但计算机中执行却比较麻烦,增加了计算复杂计算机中执行却比较麻烦,增加了计算复杂性,效率会降低。性,效率会降低。41机器码机器码反码反码所谓反码,就是把二进制数的各位数码,所谓反码,就是把二进制数的各位数码,0变为变为1,1变为变为0。数学定义:数学定义:x反反=x 1x=0 2-2-n+x 0=x-1 物理意义:正数反码等于原码,负数反码等于原物理意义:正数反码等于原码,负数反码等于原码各数码位取反码各数码位取反例:例:x=+0011011 x原原00011011 x反反00011011 x=-1000110 x原原11000110
23、 x反反1011100142机器码机器码补码补码39 取模运算:整除模数后取余数取模运算:整除模数后取余数例:例:45 mod 12=9 3 mod 12=3 5 mod 3=2 模:一个计算系统的最大容量模:一个计算系统的最大容量 定点小数机器码以定点小数机器码以2为模为模-3 9(mod 12)43机器码机器码补码补码 数学定义:数学定义:x补补=x 1x=0 2+x 或或 2-|x|或或 x反反+2-n 0 x-1 物理意义:正数补码等于原码,负数补码等于反码最低位加物理意义:正数补码等于原码,负数补码等于反码最低位加1例:例:x=+0011011 x原原00011011 x反反0001
24、1011 x补补00011011 x=-1000110 x原原11000110 x反反10111001 x补补1011101044示例已知已知X=0.125,求它的原码、反码和补码,求它的原码、反码和补码X原原=0.001X反反=0.001X补补=0.001已知已知X=-0.25,求它的原码、反码和补码,求它的原码、反码和补码X原原=1.010X反反=2-2-n+X=1.101X补补=2-|X|=1.110 X补补=X反反+2-n45示例已知已知X补补=1.1011,求它的反码和原码,求它的反码和原码解:因为解:因为X补补=X反反+2-n所以所以X反反=X补补 2-n=1.1011 2-n=1
25、.1010故故X原原=1.010146定点数加(减)法定点数加(减)法当数值用补码形式表示时,可用加法完成减法当数值用补码形式表示时,可用加法完成减法运算。这样,在计算机的计算器中只要有一个运算。这样,在计算机的计算器中只要有一个加法器,而不必为了实现减法或负数而再配一加法器,而不必为了实现减法或负数而再配一个减法器。个减法器。补码加法公式为:补码加法公式为:X补补+Y补补=X+Y补补(mod 2)以上形式的正确性可以得到证明,其条件为以上形式的正确性可以得到证明,其条件为|X|1,|Y|1,|X+Y|147定点数加(减)法定点数加(减)法 定点补码加(减)法:定点补码加(减)法:x补补+y补
26、补=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 机器数的表达范围有限,两数之和超出表示范围时,产生机器数的表达范围有限,两数之和超出表示范围时,产生溢出(溢出(overflow)例:例:01100101 01000011 10101000正数相加,正数相加,结果为负数结果为负数48定点乘法定点乘法 符号位:两数相乘.符号位相加。0+0=0,1+0=0+1=1,1+1=1 0 数值部分:原码相乘 0.101
27、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 第三次部分积右移一位,得结果49本章作业本章作业1.1.将十制数将十制数213213和和69.62569.625分别转换为二、八、十分别转换为二、八、十六进制表示。六进制表示。2.2.将十六进制数将十六进制数E6.6E6.6分别转换为二、八、十进分别转换为二、八、十进制表示。制表示。3.3.假定某台计算机的机器数占假定某台计算机的机器数占8 8位,请写出位,请写出 -6767和和5555的原码、反码和补码表示,并使用补的原码、反码和补码表示,并使用补码实现这两个数的加法运算,即码实现这两个数的加法运算,即55-6755-67。
限制150内