您好,欢迎访问三七文档
1二进制与机器码•二进制与十进制、八进制和十六进制的转换•数的表示(定点小数、定点整数、浮点数)•机器码(原码、反码、补码)•定点数的运算2二进制•二进制:逢二进位的数制系统•基数:01例:(110)21×22+1×21+0×20=(6)10•奇偶数的判断以尾数为准•易于运算•用于表达二进制数所需的物理状态最少例:0~999范围内的数,十进制表示需3×10=30个稳定状态;二进制表示需10×2=20个稳定状态(210=1024)3二进制数转换为十进制数—带权展开•整数部分:(knkn-1…k2k1)2=(kn×2n-1+kn-1×2n-2+…+k2×21+k1)10•小数部分:(.k1k2…kn-1kn)2=(k1×2-1+k2×2-2+…+kn-1×2-(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)104十进制整数转换为二进制数•转换规则:除2取余(x)10=(knkn-1…k2k1)2=(kn×2n-1+kn-1×2n-2+…+k2×21+k1)10k1=x除2取余数,k2=(x-k1)/2除2取余,……直至商数小于2(27)10=(11011)2例:(20)10=(67)10=(128)10=(10100)2(1000011)2(10000000)25十进制小数转换为二进制数•转换规则:乘2取进位(x)10=(.k1k2…kn-1kn)2=(k1×2-1+k2×2-2+…+kn-1×2n-1+kn×2-n)10k1=x乘2取进位,k2=(2×x-k1)乘2取进位,……直至余数为0例:(0.125)10=(0.001)20.125×2=0.25进位为00.25×2=0.5进位为00.5×2=1进位为1,余数为0,计算结束练习:(0.625)10=(0.101)2(23.25)10=(10111.01)26二进制数与八进制、十六进制数的转换•三位二进制数对应一位八进制数(基数:0~7)•四位二进制数对应一位十六进制数(基数:0~9,A~F)例:(110.111)2=(6.7)8=(6.E)16(11010.01)2=(32.2)8=(1A.4)167数的机内表示—定点小数•定点小数:数符数值•数符:0——正,1——负例:+0.00110100011010-0.101011010000•若机器字长为n,则定点小数的数值表示范围为:2-(n-1)=|x|=1-2-(n-1)小数点•有关机器码及其运算的介绍均以定点小数为例8数的机内表示—定点整数•无符号整数:数值位•字长为n时,无符号整数的表达范围为0~2n-1•有符号整数:数符数值•字长为n时,有符号整数的表达范围为|x|=2n-1-19数的机内表示—浮点数•浮点数:阶符阶码数符尾数•将数x表示为s×2j的形式,其中s为x的小数形式(尾数)例:-110.11=-0.11011×211011111011•设阶码共m位,尾数共n-1位,则浮点数的表示范围为:2-(2m-1)×2-1=|x|=2(2m-1)×[1-2-(n-1)]10机器码—原码•数学定义:[x]原=x1x=01-x或1+|x|0x-1•物理意义:将x表示为定点小数例:x=+0011011[x]原=00011011x=-1000110[x]原=1100011011机器码—反码•数学定义:[x]反=x1x=02-2-n+x0=x-1•物理意义:正数反码等于原码,负数反码等于原码各数码位取反例:x=+0011011[x]原=00011011[x]反=00011011x=-1000110[x]原=11000110[x]反=1011100112机器码—补码•数学定义:[x]补=x1x=02+x或2-|x|或[x]反+2-n0x-1•物理意义:正数补码等于原码,负数补码等于反码最低位加1例:x=+0011011[x]原=00011011[x]反=00011011[x]补=00011011x=-1000110[x]原=11000110[x]反=10111001[x]补=1011101013机器码补充解释-3+9•取模运算:整除模数后取余数例:45mod12=93mod12=35mod3=2•模:一个计算系统的最大容量•定点小数机器码以2为模14定点数加(减)法•定点补码加(减)法:[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•机器数的表达范围有限,两数之和超出表示范围时,产生溢出(overflow)例:01100101+01000011———————10101000正数相加,结果为负数15定点乘法•符号位:两数相乘.符号位相加。0+0=0,1+0=0+1=1,1+1=10•数值部分:原码相乘0.101×0.011————101101+000————0.0011110.000累加器初值为0+0.101乘数末位为1,加被乘数———0.101部分积0.0101部分积右移一位+0.101乘数倒数第二位为1,加被乘数———0.1111第二次部分积0.01111第二次部分积右移一位+0.000乘数最高位为0,加0———0.01111第三次部分积0.001111第三次部分积右移一位,得结果16定点除法(1)•符号位:两数相除.符号位相加。0+0=0,1+0=0+1=1,1+1=10•数值部分:补码相除(|除数||被除数|)17定点除法(2)—恢复余数法18定点除法(3)—加减交替法
本文标题:二进制与机器码
链接地址:https://www.777doc.com/doc-3284053 .html