二进制、八进制、十进制、十六进制,相互转换
- 格式:doc
- 大小:33.50 KB
- 文档页数:4
二进制八进制十进制十六进制之间的进制转换详情可参考百度百科:进制转换这个词条【主要搞懂1和2两条,其他的进制之间的转化就迎刃而解,很好懂了】1. 十进制-> 二进制:将这个十进制数连续除以2的过程,第一步除以2,得到商和余数,将商再继续除以2,得到又一个商和余数,直到商为0。
最后将所有余数倒序排列,得到的数就是转换成二进制的结果。
2. 二进制-> 十进制:二进制数第1位的权值是2的0次方,第2位的权值是2的1次方,第3位的权值是2的2次方。
(例如1258这个十进制数,实际上代表的是:1x1000+2x100+5x10+8x1=1258)那么1011这个二进制数,实际上代表的是:1x8+0x4+1x2+1x1=11(十进制数11)。
(这里的8就是2的3次方,4就是2的2次方,2就是2的1次方,1就是2的0次方)3. 十进制-> 八进制:十进制数转换成八进制的方法,和转换为二进制的方法类似,唯一变化:除数由2变成8。
4. 八进制-> 十进制和转换为二进制的方法类似,唯一变化是,底数变成8,第1位表示8的0次方,第二位表示8的一次方,第三位表示8的2次方,第四位表示8的3次方。
例如1314这个八进制数,十进制数就是1x512+3x64+1x8+4x1=716(十进制)5. 十进制-> 十六进制10进制数转换成16进制的方法,和转换为2进制的方法类似,唯一变化:除数由2变成16。
十六进制是0123456789ABCDEF这十六个字符表示。
那么单独一个A就是10,单独一个B就是11,CDEF,就分表表示12,13,14,15。
而10这个十六进制数,实际就是十进制中的16。
6. 十六进制-> 十进制和转换为二进制的方法类似,唯一变化是,底数变成16,第1位表示16的0次方,第二位表示16的一次方,第三位表示16的2次方,第四位表示16的3次方。
7. 二进制<--->八进制,之间的相互转换,更简单一些,因为8本身是2的三次方。
二进制,八进制,十进制,十六进制之间的相互转化1.转换为十进制二进制化为十进制例:将二进制数101.01转换成十进制数(101.01)2 = 1×22 + 0×21 + 1×20 + 0×2-1 + 1×2-2 = (5.25)10 八进制化为十进制例:将八进制数12.6转换成十进制数(12.6)8 = 1×81 + 2×80 + 6×8-1 = (10.75)10十六化为十进制例:将十六进制数2AB.6转换成十进制数:(2AB.6)16 = 2×162 + 10×161 + 11×160 + 6×16-1 = (683.375)102.转换为二进制八进制化为二进制规则:按照顺序,每1位八进制数改写成等值的3位二进制数,次序不变。
例:(17.36)8 = (001 111 .011 110)2 = (1111.01111)2十六进制化为二进制规则:每1位十六进制数改写成等值的4位二进制数,次序不变。
例:(3A8C.D6)16 =(0011 1010 1000 1100.1101 0110)2 =(11101010001100.1101011)2十进制整数化为二进制整数规则:除二取余,直到商为零为止,倒排。
例:将十进制数86转化为二进制2 | 86 02 | 43 (1)2 | 21 (1)2 | 10 02 | 5 (1)2 | 2 02 | 1 (1)结果:(86)10 = (1010110)2十进制小数化为二进制小数规则:乘二取整,直到小数部分为零或给定的精度为止,顺排。
例:将十进制数0.875转化为二进制数0.875× 21.75× 21.5×21.0结果:(0.875)10 = (0.111)23.转换为八进制二进制化为八进制整数部份从最低有效位开始,以3位一组,最高有效位不足3位时以0补齐,每一组均可转换成一个八进制的值,转换完毕就是八进制的整数。
二进制、八进制、十进制、十六进制之间转换一、十进制与二进制之间的转换(1)十进制转换为二进制,分为整数部分和小数部分① 整数部分方法:除2 取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0 为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。
下面举例:例:将十进制的168 转换为二进制得出结果将十进制的168 转换为二进制,(10101000)2 分析:第一步,将168除以2, 商84,余数为0。
第二步,将商84除以2,商42余数为0。
第三步,将商42除以2,商21余数为0。
第四步,将商21除以2,商10余数为1。
第五步,将商10除以2,商5 余数为0。
第六步,将商5除以2,商2余数为1。
第七步,将商2除以2,商1余数为0。
第八步,将商1除以2,商0余数为1。
第九步,读数,因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,即10101000(2)小数部分方法:乘2 取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分为零为止。
如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位。
换句话说就是0舍1入。
读数要从前面的整数读到后面的整数,下面举例:例1:将0.125 换算为二进制得出结果:将0.125 换算为二进制(0.001 )2分析:第一步,将0.125 乘以2,得0.25, 则整数部分为0, 小数部分为0.25;第二步, 将小数部分0.25 乘以2,得0.5, 则整数部分为0, 小数部分为0.5;第三步, 将小数部分0.5 乘以2,得1.0, 则整数部分为1,小数部分为0.0;第四步, 读数, 从第一位读起,读到最后一位, 即为0.001 。
二进制,八进制,十进制,十六进制之间的相互转换和相关概念二进制:计算机只认识0或1,也就是高电平和低电平.所以所有的数据格式最终会转化为2进制形式,计算机硬件才能识别。
二进制逢二进一,八进制逢八进一,十进制逢十进一,十六进制逢十六进一。
下边是各进制之间的转换公式.二进制转十进制0110 0100(2) 换算成十进制第0位 0 * 2^0 = 0第1位 0 * 2^1 = 0第2位 1 * 2^2 = 4第3位 0 * 2^3 = 0第4位 0 * 2^4 = 0第5位 1 * 2^5 = 32第6位 1 * 2^6 = 64第7位 0 * 2^7 = 0 +---------------------------100二进制转八进制可采用8421法1010011(2)首先每三位分割即: 001,010,011不足三位采用0补位.然后采用8421法: 001=1010=2011=3所以转换成8进制是123二进制转十六进制1101011010100(2)首先每四位分割即: 0001,1010,1101,0100不足四位采用0补位.然后采用8421法: 0001:11010:A1101:D0100:4所以转换成十六进制是1AD4十六进制当数字超过9后将采用A代替10,B代替11,C代替12,D代替13,E 代替14,F代替15;下边是十进制的各种转换:十进制转二进制6(10)10进制数转换成二进制数,这是一个连续除2的过程:把要转换的数,除以2,得到商和余数,将商继续除以2,直到商为0。
最后将所有余数倒序排列,得到数就是转换结果。
商余数6/2 3 03/2 1 11/2 0 1最后把余数从下向上排列写出110即是转换后的二进制.十进制转换八进制10进制数转换成八进制数,这是一个连续除8的过程:把要转换的数,除以8,得到商和余数,将商继续除以8,直到商为0。
最后将所有余数倒序排列,得到数就是转换结果。
120(10)商余数120/8 15 015/8 1 71/8 0 1最后把余数从下向上排列写出170即是转换后的八进制.十进制转换十六进制10进制数转换成十六进制数,这是一个连续除16的过程:把要转换的数,除以16,得到商和余数,将商继续除以16,直到商为0。
一、十进制与二进制之间的转换(1)十进制转换为二进制,分为整数部分和小数部分①整数部分方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。
下面举例:例:将十进制的168转换为二进制得出结果将十进制的168转换为二进制,(10101000)2分析:第一步,将168除以2,商84,余数为0。
第二步,将商84除以2,商42余数为0。
第三步,将商42除以2,商21余数为0。
第四步,将商21除以2,商10余数为1。
第五步,将商10除以2,商5余数为0。
第六步,将商5除以2,商2余数为1。
第七步,将商2除以2,商1余数为0。
第八步,将商1除以2,商0余数为1。
第九步,读数,因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,即10101000(2)小数部分方法:乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分为零为止。
如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位。
换句话说就是0舍1入。
读数要从前面的整数读到后面的整数,下面举例:例1:将0.125换算为二进制得出结果:将0.125换算为二进制(0.001)2分析:第一步,将0.125乘以2,得0.25,则整数部分为0,小数部分为0.25;第二步, 将小数部分0.25乘以2,得0.5,则整数部分为0,小数部分为0.5;第三步, 将小数部分0.5乘以2,得1.0,则整数部分为1,小数部分为0.0;第四步,读数,从第一位读起,读到最后一位,即为0.001。
例2,将0.45转换为二进制(保留到小数点第四位)大家从上面步骤可以看出,当第五次做乘法时候,得到的结果是0.4,那么小数部分继续乘以2,得0.8,0.8又乘以2的,到1.6这样一直乘下去,最后不可能得到小数部分为零,因此,这个时候只好学习十进制的方法进行四舍五入了,但是二进制只有0和1两个,于是就出现0舍1入。
二进制、八进制、十进制、十六进制之间转换一、十进制与二进制之间的转换1 十进制转换为二进制,分为整数部分和小数部分①整数部分方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数.下面举例:例:将十进制的168转换为二进制得出结果将十进制的168转换为二进制,2分析:第一步,将168除以2,商84,余数为0.第二步,将商84除以2,商42余数为0.第三步,将商42除以2,商21余数为0.第四步,将商21除以2,商10余数为1.第五步,将商10除以2,商5余数为0.第六步,将商5除以2,商2余数为1.第七步,将商2除以2,商1余数为0.第八步,将商1除以2,商0余数为1.第九步,读数,因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,即2 小数部分方法:乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分为零为止.如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位.换句话说就是0舍1入.读数要从前面的整数读到后面的整数,下面举例:例1:将换算为二进制得出结果:将换算为二进制2分析:第一步,将乘以2,得,则整数部分为0,小数部分为;第二步, 将小数部分乘以2,得,则整数部分为0,小数部分为;第三步, 将小数部分乘以2,得,则整数部分为1,小数部分为;第四步,读数,从第一位读起,读到最后一位,即为.例2,将转换为二进制保留到小数点第四位大家从上面步骤可以看出,当第五次做乘法时候,得到的结果是,那么小数部分继续乘以2,得,又乘以2的,到这样一直乘下去,最后不可能得到小数部分为零,因此,这个时候只好学习十进制的方法进行四舍五入了,但是二进制只有0和1两个,于是就出现0舍1入.这个也是计算机在转换中会产生误差,但是由于保留位数很多,精度很高,所以可以忽略不计.那么,我们可以得出结果将转换为二进制约等于上面介绍的方法是十进制转换为为二进制的方法,需要大家注意的是:1 十进制转换为二进制,需要分成整数和小数两个部分分别转换2 当转换整数时,用的除2取余法,而转换小数时候,用的是乘2取整法3 注意他们的读数方向因此,我们从上面的方法,我们可以得出十进制数转换为二进制为.001,或者十进制数转换为二进制数约等于.0111.3 二进制转换为十进制不分整数和小数部分方法:按权相加法,即将二进制每位上的数乘以权,然后相加之和即是十进制数.例将二进制数转换为十进制数.得出结果:2=10大家在做二进制转换成十进制需要注意的是1 要知道二进制每位的权值2 要能求出每位的值二、二进制与八进制之间的转换首先,我们需要了解一个数学关系,即2^3=8,2^4=16,而八进制和十六进制是用这关系衍生而来的,即用三位二进制表示一位八进制,用四位二进制表示一位十六进制数.接着,记住4个数字8、4、2、12^3=8、2^2=4、2^1=2、2^0=1.现在我们来练习二进制与八进制之间的转换.1 二进制转换为八进制方法:取三合一法,即从二进制的小数点为分界点,向左向右每三位取成一位,接着将这三位二进制按权相加,得到的数就是一位八位二进制数,然后,按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的八进制数.如果向左向右取三位后,取到最高最低位时候,如果无法凑足三位,可以在小数点最左边最右边,即整数的最高位最低位添0,凑足三位.例①将二进制数转换为八进制得到结果:将转换为八进制为②将二进制数转换为八进制得到结果:将转换为八进制为2 将八进制转换为二进制方法:取一分三法,即将一位八进制数分解成三位二进制数,用三位二进制按权相加去凑这位八进制数,小数点位置照旧.例:①将八进制数转换为二进制因此,将八进制数转换为二进制数为,即大家从上面这道题可以看出,计算八进制转换为二进制首先,将八进制按照从左到右,每位展开为三位,小数点位置不变然后,按每位展开为22,21,20即4、2、1三位去做凑数,即a×22+ b×21 +c ×20=该位上的数a=1或者a=0,b=1或者b=0,c=1或者c=0,将abc排列就是该位的二进制数接着,将每位上转换成二进制数按顺序排列最后,就得到了八进制转换成二进制的数字.以上的方法就是二进制与八进制的互换,大家在做题的时候需要注意的是1 他们之间的互换是以一位与三位转换,这个有别于二进制与十进制转换2 大家在做添0和去0的时候要注意,是在小数点最左边或者小数点的最右边即整数的最高位和小数的最低位才能添0或者去0,否则将产生错误三、二进制与十六进制的转换方法:与二进制与八进制转换相似,只不过是一位十六与四位二进制的转换,下面具体讲解1 二进制转换为十六进制方法:取四合一法,即从二进制的小数点为分界点,向左向右每四位取成一位,接着将这四位二进制按权相加,得到的数就是一位十六位二进制数,然后,按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的十六进制数.如果向左向右取四位后,取到最高最低位时候,如果无法凑足四位,可以在小数点最左边最右边,即整数的最高位最低位添0,凑足四位.①例:将二进制.1011转换为十六进制得到结果:将二进制.1011转换为十六进制为②例:将转换为十六进制因此得到结果:将二进制转换为十六进制为2将十六进制转换为二进制方法:取一分四法,即将一位十六进制数分解成四位二进制数,用四位二进制按权相加去凑这位十六进制数,小数点位置照旧.①将十六进制转换为二进制数因此得到结果:将十六进制转换为二进制为即四、八进制与十六进制的转换方法:一般不能互相直接转换,一般是将八进制或十六进制转换为二进制,然后再将二进制转换为十六进制或八进制,小数点位置不变.那么相应的转换请参照上面二进制与八进制的转换和二进制与十六进制的转五、八进制与十进制的转换1八进制转换为十进制方法:按权相加法,即将八进制每位上的数乘以位权,然后相加之和即是十进制数.例:①将八进制数转换为十进制2十进制转换为八进制十进制转换成八进制有两种方法:1间接法:先将十进制转换成二进制,然后将二进制又转换成八进制2直接法:前面我们讲过,八进制是由二进制衍生而来的,因此我们可以采用与十进制转换为二进制相类似的方法,还是整数部分的转换和小数部分的转换,下面来具体讲解一下:①整数部分方法:除8取余法,即每次将整数部分除以8,余数为该位权上的数,而商继续除以8,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数起,一直到最前面的一个余数.②小数部分方法:乘8取整法,即将小数部分乘以8,然后取整数部分,剩下的小数部分继续乘以8,然后取整数部分,剩下的小数部分又乘以8,一直取到小数部分为零为止.如果永远不能为零,就同十进制数的四舍五入一样,暂取个名字叫3舍4入.例:将十进制数转换为八进制数解:先将这个数字分为整数部分796和小数部分整数部分小数部分因此,得到结果十进制转换八进制为上面的方法大家可以验证一下,你可以先将十进制转换,然后在转换为八进制,这样看得到的结果是否一样六、十六进制与十进制的转换十六进制与八进制有很多相似之处,大家可以参照上面八进制与十进制的转换自己试试这两个进制之间的转换.通过上面对各种进制之间的转换,我们可以将前面的转换图重新完善一下:本文介绍了二进制、十进制、八进制、十六进制四种进制之间相互的转换,大家在转换的时候要注意转换的方法,以及步骤,特别是十进制转换为期于三种进制之间,要分为整数部分和小数部分,最后就是小数点的位置.但是要保证考试中不出现错误还是需要大家经常练习,这样才能熟能生巧.二进制,八进制,十进制,十六进制转换99 :二进制是1100011 八进制是143 十六进制是63113: 110001 161 71127: 1 447 127192: 300 C0324: 0 504 144算法:十进制与二进制转换之相互算法十进制转二进制:用2辗转相除至结果为1将余数和最后的1从下向上倒序写就是结果例如302302/2 = 151 余0151/2 = 75 余175/2 = 37 余137/2 = 18 余118/2 = 9 余09/2 = 4 余14/2 = 2 余02/2 = 1 余0故二进制为0二进制转十进制从最后一位开始算,依次列为第0、1、2...位第n位的数0或1乘以2的n次方得到的结果相加就是答案例如:01101011.转十进制:第0位:1乘2的0次方=11乘2的1次方=20乘2的2次方=01乘2的3次方=80乘2的4次方=01乘2的5次方=321乘2的6次方=640乘2的7次方=0然后:1+2+0+8+0+32+64+0=107.二进制01101011=十进制107.一、二进制数转换成十进制数由二进制数转换成十进制数的基本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和.这种做法称为"按权相加"法.二、十进制数转换为二进制数十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并.1. 十进制整数转换为二进制整数十进制整数转换为二进制整数采用"除2取余,逆序排列"法.具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来.2.十进制小数转换为二进制小数十进制小数转换成二进制小数采用"乘2取整,顺序排列"法.具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止.然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位.回答者:HackerKinsn - 试用期一级 2-24 13:311.二进制与十进制的转换1二进制转十进制<BR>方法:"按权展开求和"例:2 =1×23+0×22+1×21+1×20+0×2-1+1×2-210 =8+0+2+1+0+10=102十进制转二进制·十进制整数转二进制数:"除以2取余,逆序输出" 例: 8910=101100122 892 44 (1)2 22 02 11 02 5 (1)2 2 (1)2 1 00 (1)·十进制小数转二进制数:"乘以2取整,顺序输出"例:0.62510= 0.10120.625X 21.25X 20.5X 21.02.八进制与二进制的转换例:将八进制的转换成二进制数:37 . 4 1 6011 111 .100 001 110即:8 =11111.2例:将二进制的转换成八进制:0 1 0 1 1 0 . 0 0 1 1 0 02 6 . 1 4即:2 =83.十六进制与二进制的转换<BR>例:将十六进制数转换成二进制:5 D F . 90101 1101 1111.1001即:16 =.10012例:将二进制数转换成十六进制:0110 0001 . 11106 1 . E即:2 =16。
二进制,八进制,十进制,十六进制之间的相互转换和相关概念二进制:计算机只认识0或1,也就是高电平和低电平.所以所有的数据格式最终会转化为2进制形式,计算机硬件才能识别。
二进制逢二进一,八进制逢八进一,十进制逢十进一,十六进制逢十六进一。
下边是各进制之间的转换公式.二进制转十进制0110 0100(2) 换算成十进制第0位0 * 2^0 = 0第1位0 * 2^1 = 0第2位 1 * 2^2 = 4第3位0 * 2^3 = 0第4位0 * 2^4 = 0第5位 1 * 2^5 = 32第6位 1 * 2^6 = 64第7位0 * 2^7 = 0 +---------------------------100二进制转八进制可采用8421法1010011(2)首先每三位分割即: 001,010,011不足三位采用0补位.然后采用8421法: 001=1010=2011=3所以转换成8进制是123二进制转十六进制1101011010100(2)首先每四位分割即: 0001,1010,1101,0100不足四位采用0补位.然后采用8421法: 0001:11010:A1101:D0100:4所以转换成十六进制是1AD4十六进制当数字超过9后将采用A代替10,B代替11,C代替12,D代替13,E代替14,F代替15;下边是十进制的各种转换:十进制转二进制6(10)10进制数转换成二进制数,这是一个连续除2的过程:把要转换的数,除以2,得到商和余数,将商继续除以2,直到商为0。
最后将所有余数倒序排列,得到数就是转换结果。
商余数6/2 3 03/2 1 11/2 0 1最后把余数从下向上排列写出110即是转换后的二进制.十进制转换八进制10进制数转换成八进制数,这是一个连续除8的过程:把要转换的数,除以8,得到商和余数,将商继续除以8,直到商为0。
最后将所有余数倒序排列,得到数就是转换结果。
120(10)商余数120/8 15 015/8 1 71/8 0 1最后把余数从下向上排列写出170即是转换后的八进制.十进制转换十六进制10进制数转换成十六进制数,这是一个连续除16的过程:把要转换的数,除以16,得到商和余数,将商继续除以16,直到商为0。
二进制、八进制、十进制、十六进制互相转换方法有一个公式:二进制数、八进制数、十六进制数的各位数字分别乖以各自的基数的(N-1)次方,其和相加之和便是相应的十进制数。
个位,N=1;十位,N=2...举例:110B=1*2的2次方+1*2的1次方+0*2的0次方=0+4+2+0=6D110Q=1*8的2次方+1*8的1次方+0*8的0次方=64+8+0=72D110H=1*16的2次方+1*16的1次方+0*16的0次方=256+16+0=272D2、十进制数转二进制数、八进制数、十六进制数方法是相同的,即整数部分用除基取余的算法,小数部分用乘基取整的方法,然后将整数与小数部分拼接成一个数作为转换的最后结果。
3、二进制数转换成其它数据类型3-1二进制转八进制:从小数点位置开始,整数部分向左,小数部分向右,每三位二进制为一组用一位八进制的数字来表示,不足三位的用0补足,就是一个相应八进制数的表示。
010110.001100B=26.14Q八进制转二进制反之则可。
3-2二进制转十进制:见13-3二进制转十六进制:从小数点位置开始,整数部分向左,小数部分向右,每四位二进制为一组用一位十六进制的数字来表示,不足四位的用0补足,就是一个相应十六进制数的表示。
00100110.00010100B=26.14H十进制转各进制要将十进制转为各进制的方式,只需除以各进制的权值,取得其余数,第一次的余数当个位数,第二次余数当十位数,其余依此类推,直到被除数小于权值,最后的被除数当最高位数。
一、十进制转二进制如:55转为二进制2|5527――1 个位13――1 第二位6――1 第三位3――0 第四位1――1 第五位最后被除数1为第七位,即得110111二、十进制转八进制如:5621转为八进制8|5621702 ――5 第一位(个位)87 ――6 第二位10 ――7 第三位1 ――2 第四位最后得八进制数:127658三、十进制数十六进制如:76521转为十六进制16|765214726 ――5 第一位(个位)295 ――6 第二位18 ――6 第三位1 ――2 第四位最后得1276516二进制与十六进制的关系2进制0000 0001 0010 0011 0100 0101 0110 011116进制0 1 2 3 4 5 6 72进制1000 1001 1010 1011 1100 1101 1110 111116进制8 9 a(10) b(11) c(12) d(13) e(14) f(15)可以用四位数的二进制数来代表一个16进制,如3A16 转为二进制为:3为0011,A为1010,合并起来为00111010。
二进制八进制十进制十六进制四种算法之间的互相转换1.二进制转十进制:二进制数是基于2的数制系统,只包含0和1两个数字。
转换二进制数到十进制数非常简单,只需要将二进制数中的每个数字乘以2的幂次方,然后将结果相加即可。
例如,二进制数"1010"转换为十进制数的计算方法如下:1*2^3+0*2^2+1*2^1+0*2^0=8+0+2+0=102.八进制转十进制:八进制数是基于8的数制系统,只包含0到7的数字。
转换八进制数到十进制数也非常简单,只需要将八进制数中的每个数字乘以8的幂次方,然后将结果相加即可。
例如,八进制数"753"转换为十进制数的计算方法如下:7*8^2+5*8^1+3*8^0=7*64+5*8+3=448+40+3=4913.十六进制转十进制:十六进制数是基于16的数制系统,包含0到9的数字和A到F的字母。
转换十六进制数到十进制数也非常简单,只需要将每个十六进制数字乘以16的幂次方,然后将结果相加即可。
其中字母A到F分别表示10到15、例如,十六进制数"3AF"转换为十进制数的计算方法如下:3*16^2+10*16^1+15*16^0=3*256+10*16+15=768+160+15=9434.十进制转二进制:十进制数是我们日常生活中最常用的数制系统,包含数字0到9、转换十进制数到二进制数可以使用除2取余法。
具体步骤是:将十进制数除以2,直到商为0,然后将每次的余数倒序排列起来作为二进制数的结果。
例如,将十进制数10转换为二进制数的步骤如下:10/2=5余05/2=2余12/2=1余01/2=0余1倒序排列余数得到二进制数"1010"。
5.十进制转八进制:将十进制数转换为八进制数也可以使用除8取余法。
具体步骤与转换为二进制数相似,只需要将除数改为8即可。
例如,将十进制数25转换为八进制数的步骤如下:25/8=3余13/8=0余3倒序排列余数得到八进制数"31"。
⼆进制、⼋进制、⼗进制、⼗六进制的互相转换在编程⼯作种,我们时常需要对不同的进制的数进⾏转换,以⽅便我们的⼯作、阅读和理解。
在计算机领域,主要设计⼆进制、⼋进制、⼗进制和⼗六进制,下⾯我们就来讲讲这四种机制的整数相互转换⽅法。
⼀、查表法就是我们制作⼀张包含各种进制的值⼀⼀对应数值表,需要时查表就得,但是,我们知道,这不太现实,因为数是⽆穷的,我们不可能做⼀张⽆穷的表。
在次但是,这也不是说查表法就不⽤了,其实我们⼀直在使⽤,你可能会说,没有,没见过,不对,有的,就在你的脑海⾥,我相信绝⼤部分程序员都有,⽐如,问你,(15)10对应的⼗六进制是多少,你肯定张⼝就答(F)16,为什么你能很快答出,是因为我们在⽇常⼯作和学习中,⽆形在脑海⾥建⽴了这张表。
只是这张表很有限,更⼤的数你就不能⼀⼝答了,所以需要其他的转换⽅法,但是其他⽅法会⽤到查表法。
我们⾄少要建⽴起如下的⼀张表⼆、短除法短除法运算⽅法是先⽤⼀个除数除以能被它除尽的⼀个质数,以此类推,除到商是质数为⽌。
具体在我们的进制换算⾥,当⼀个M进制数转N进制数时,就是⽤这个数除N取余,逆序排列。
具体做法是:将N作为除数,⽤M进制整数除以N,可以得到⼀个商和余数;保留余数,⽤商继续除以N,⼜得到⼀个新的商和余数;仍然保留余数,⽤商继续除以N,还会得到⼀个新的商和余数;如此反复进⾏,每次都保留余数,⽤商接着除以N,直到商为0时为⽌下⾯举例:⼗进制转⼆进制、⼋进制、⼗六进制(10)10--->(x)2结果为(10)10--->(1010)2(100)10--->(x)8结果为(100)10--->(144)8 。
(100)10--->(x)16结果为(100)10--->(64)16⼋进制转⼆进制、⼗进制、⼗六进制(27)8--->(x)2结果为(27)8--->(10111)2(27)8--->(x)10⾸先查表得 (10)10<===>(12)8有如下算式结果为(27)8--->(23)10(756)8--->(x)16⾸先查表得 (16)10<===>(20)8(E)16<===>(16)8有如下算式结果,(756)8--->(1EE)16⼆进制转其他进制和⼗六进制转其他进制我就不⼀⼀举例了,通过上⾯的例⼦,我们可以看到⽤短除法我们是可以进⾏任意进制的相互转换的,同时我们也可以发现,将⾼进制向低进制(只限于这⼏种进制,我们姑且认为⾼低顺序为:⼆进制<⼋进制<⼗进制<⼗六进制)转换时,要先有⼀步进制基数的查表换算过程,在加上我们⼈对⼆、⼋、⼗六进制的四则运算不熟悉,所以这三种进制进⾏短除法换算⽐较困难。
在高速发展的现代社会,计算机浩浩荡荡的成为了人们生活中不可缺少的一部分,帮助人们解决通信,联络,互动等各方面的问题,今天我就给大家讲讲与计算机有关的“进制转换”问题。
我们都知道,在计算机中数值是用二进制表示的,之所以要用八进制和十六进制,是因为它们与二进制之间的互相转换很方便,而且它们比长长的一串二进制数要方便书写和记忆。
一、二进制与八进制之间的转换(1)二进制转换为八进制方法:取三合一法,即从二进制的小数点为分界点,向左(向右)每三位取成一位,接着将这三位二进制按权相加,得到的数就是一位八位二进制数,然后,按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的八进制数。
如果向左(向右)取三位后,取到高(最低)位时候,如果无法凑足三位,可以在小数点最左边(最右边),即整数的最高位(最低位)添0,凑足三位。
要把二进制转换为八进制,需要用一张表。
如下:二进制八进制000 0001 1010 2011 3100 4101 5110 6111 7有了这张表,就可以方便的把二进制数转换成八进制数。
首先,将一个二进制数自右向左每三位分成一段。
然后,将每一段用表中的八进制数替换,即可例如:100101010把它分成100 101 010查表:100->4 101->5 010->2替换:452例①将二进制数101110.101转换为八进制得到结果:将101110.101转换为八进制为56.5②将二进制数1101.1转换为八进制得到结果:将1101.1转换为八进制为15.4(2)将八进制转换为二进制方法:取一分三法,即将一位八进制数分解成三位二进制数,用三位二进制按权相加去凑这位八进制数,小数点位置照旧。
例:①将八进制数67.54转换为二进制因此,将八进制数67.54转换为二进制数为110111.101100,即110111.1011大家从上面这道题可以看出,计算八进制转换为二进制首先,将八进制按照从左到右,每位展开为三位,小数点位置不变然后,按每位展开为22,21,20(即4、2、1)三位去做凑数,即a×22+ b×21 +c×20=该位上的数(a=1或者a=0,b=1或者b=0,c=1或者c=0),将abc排列就是该位的二进制数接着,将每位上转换成二进制数按顺序排列.最后,就得到了八进制转换成二进制的数字。
二进制、八进制、十进制、十六进制互相转换方法【篇一】一.在计算机应用中,二进制使用后缀b表示;十进制使用后缀d表示,八进制用Q表示,十六制使用后缀H表示。
二.二进制,十六进制与十进制的计算转换1.二进制转换为十进制计算公式:二进制数据X位数字乘以2的X-1次方的积的总和例:01b=( )d数据1 0 1 0 1 0 1 1X-1位7 6 5 4 3 2 1 0相应的十进制值即为:27+25+23+21+20=128+32+8+2+1=1712.十六进制转换十进制计算公式:二进制数据X位数字乘以16的X-1次方的积的总和〔与二进制转换十制进同理的,将底数换为16〕注意:在十六进制中,10-16依次用A,B,C,D,E,F 表示例:1F3E H=〔〕d计算:1*16的3次方+16*16的2次方+3*16的1次方+15*16的0次方=1*4096+16*256+3*16+15*16=4096+4096+48+240=8480三.十进制与二进制,十六制的计算转换1.十进制转换为二进制十进制数据数字除以2的余数的逆序组合例:404d=( )b2|404 余02|202 余02|余02|50 余12|25 余02|12 余12|6 余02|3 余12|1计算结果便是:1010002.十进制转换十六进制。
与上面同理,注意的是10以上的数字用字母表示,除数是16十六进制与二进制的转换,建议通过十进制来进展中转。
带小数点的十进制转换为二进制时同理,小数店后的数位指数为负指数一、二进制数转换成十进制数由二进制数转换成十进制数的根本做法是,把二进制数首先写成加权系数展开式,然后按十进制加法规那么求和。
这种做法称为"按权相加"法。
二、十进制数转换为二进制数十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数局部和小数局部分别转换后,再加以合并。
1. 十进制整数转换为二进制整数十进制整数转换为二进制整数采用"除2取余,逆序排列"法。
二进制、八进制、十进制、十六进制之间转换一、十进制与二进制之间的转换(1)十进制转换为二进制,分为整数部分和小数部分①整数部分方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。
下面举例:例:将十进制的168转换为二进制得出结果将十进制的168转换为二进制,(10101000)2分析:第一步,将168除以2,商84,余数为0。
第二步,将商84除以2,商42余数为0。
第三步,将商42除以2,商21余数为0。
第四步,将商21除以2,商10余数为1。
第五步,将商10除以2,商5余数为0。
第六步,将商5除以2,商2余数为1。
第七步,将商2除以2,商1余数为0。
第八步,将商1除以2,商0余数为1。
第九步,读数,因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,即10101000(2)小数部分方法:乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分为零为止。
如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位。
换句话说就是0舍1入。
读数要从前面的整数读到后面的整数,下面举例:例1:将0.125换算为二进制得出结果:将0.125换算为二进制(0.001)2分析:第一步,将0.125乘以2,得0.25,则整数部分为0,小数部分为0.25;第二步, 将小数部分0.25乘以2,得0.5,则整数部分为0,小数部分为0.5;第三步, 将小数部分0.5乘以2,得1.0,则整数部分为1,小数部分为0.0;第四步,读数,从第一位读起,读到最后一位,即为0.001。
例2,将0.45转换为二进制(保留到小数点第四位)大家从上面步骤可以看出,当第五次做乘法时候,得到的结果是0.4,那么小数部分继续乘以2,得0.8,0.8又乘以2的,到1.6这样一直乘下去,最后不可能得到小数部分为零,因此,这个时候只好学习十进制的方法进行四舍五入了,但是二进制只有0和1两个,于是就出现0舍1入。
二进制、八进制、十进制、十六进制之间转换一、十进制与二进制之间的转换(1)十进制转换为二进制,分为整数部分和小数部分① 整数部分方法:除 2 取余法,即每次将整数部分除以 2,余数为该位权上的数,而商继续除以 2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为 0 为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。
下面举例:例:将十进制的 168 转换为二进制得出结果将十进制的 168 转换为二进制,(10101000)2分析 : 第一步,将 168 除以 2, 商 84, 余数为 0。
第二步,将商 84 除以 2,商 42 余数为 0。
第三步,将商 42 除以 2,商 21 余数为 0。
第四步,将商 21 除以 2,商 10 余数为 1。
第五步,将商 10 除以 2,商 5 余数为 0。
第六步,将商 5 除以 2,商 2 余数为 1。
第七步,将商 2 除以 2,商 1 余数为 0。
第八步,将商 1 除以 2,商 0 余数为 1。
第九步,读数,因为最后一位是经过多次除以 2 才得到的,因此它是最高位,读数字从最后的余数向前读,即 10101000(2)小数部分方法:乘 2 取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分为零为止。
如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是 0 还是 1,取舍,如果是零,舍掉,如果是 1,向入一位。
换句话说就是 0 舍 1 入。
读数要从前面的整数读到后面的整数,下面举例:例 1:将 0.125 换算为二进制得出结果:将 0.125 换算为二进制( 0.001 )2分析:第一步,将0.125 乘以 2,得 0.25, 则整数部分为0, 小数部分为0.25;第二步 ,将小数部分0.25 乘以 2, 得 0.5, 则整数部分为0, 小数部分为0.5;第三步 ,将小数部分0.5乘以2,得 1.0,则整数部分为1,小数部分为0.0;第四步 , 读数 , 从第一位读起 , 读到最后一位 , 即为 0.001 。
二进制、八进制、十进制、十六进制之间转换一、进制的概念在计算机语言中常用的进制有二进制、八进制、十进制和十六进制,十进制是最主要的表达形式。
对于进制,有两个基本的概念:基数和运算规则。
基数:基数是指一种进制中组成的基本数字,也就是不能再进行拆分的数字。
二进制是0和1;八进制是0-7;十进制是0-9;十六进制是0-9+A-F(大小写均可)。
也可以这样简单记忆,假设是n进制的话,基数就是【0,n-1】的数字,基数的个数和进制值相同,二进制有两个基数,十进制有十个基数,依次类推。
运算规则:运算规则就是进位或错位规则。
例如对于二进制来说,该规则是“满二进一,借一当二”;对于十进制来说,该规则是“满十进一,借一当十”。
其他进制也是这样。
二、二、八、十、十六进制基数对照表三、二进制转化成其他进制1. 二进制(Binary)——>八进制(Octal)例子1:将二进制数(10010)2转化成八进制数。
(10010)2=(010 010)2=(2 2)8=(22)8例子2:将二进制数(0.1010)2转化为八进制数。
(0.10101)2=(0. 101 010)2=(0. 5 2)8=(0.52)8诀窍:因为每三位二进制数对应一位八进制数,所以,以小数点为界,整数位则将二进制数从右向左每3位一隔开,不足3位的在左边用0填补即可;小数位则将二进制数从左向右每3位一隔开,不足3位的在右边用0填补即可。
2. 二进制(Binary)——>十进制(Decimal)例子1:将二进制数(10010)2转化成十进制数。
(10010)2=(1x24+0x23+0x22+1x21+0x20)10=(16+0+0+2+0)10=(18) 10例子2:将二进制数(0.10101)2转化为十进制数。
(0.10101)2=(0+1x2-1+0x2-2+1x2-3+0x2-4+1x2-5)10=(0+0.5+0.25+0.125+0.0625+0.03125)10=(0.96875)10诀窍:以小数点为界,整数位从最后一位(从右向左)开始算,依次列为第0、1、2、3………n,然后将第n位的数(0或1)乘以2的n-1次方,然后相加即可得到整数位的十进制数;小数位则从左向右开始算,依次列为第1、2、3……..n,然后将第n位的数(0或1)乘以2的-n次方,然后相加即可得到小数位的十进制数(按权相加法)。
二进制,八进制,十进制,十六进制之间的转换算法一、十进制与二进制之间的转换(1)十进制转换为二进制,分为整数部分和小数部分①整数部分方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。
下面举例:例:将十进制的168转换为二进制得出结果将十进制的168转换为二进制,(10101000)2分析:第一步,将168除以2,商84,余数为0。
第二步,将商84除以2,商42余数为0。
第三步,将商42除以2,商21余数为0。
第四步,将商21除以2,商10余数为1。
第五步,将商10除以2,商5余数为0。
第六步,将商5除以2,商2余数为1。
第七步,将商2除以2,商1余数为0。
第八步,将商1除以2,商0余数为1。
第九步,读数,因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,即10101000(2)小数部分方法:乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分为零为止。
如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位。
换句话说就是0舍1入。
读数要从前面的整数读到后面的整数,下面举例:例1:将0.125换算为二进制得出结果:将0.125换算为二进制(0.001)2分析:第一步,将0.125乘以2,得0.25,则整数部分为0,小数部分为0.25;第二步, 将小数部分0.25乘以2,得0.5,则整数部分为0,小数部分为0.5;第三步, 将小数部分0.5乘以2,得1.0,则整数部分为1,小数部分为0.0;第四步,读数,从第一位读起,读到最后一位,即为0.001。
例2,将0.45转换为二进制(保留到小数点第四位)大家从上面步骤可以看出,当第五次做乘法时候,得到的结果是0.4,那么小数部分继续乘以2,得0.8,0.8又乘以2的,到1.6这样一直乘下去,最后不可能得到小数部分为零,因此,这个时候只好学习十进制的方法进行四舍五入了,但是二进制只有0和1两个,于是就出现0舍1入。
将二进制、八进制、十六进制转换为十进制二进制、八进制和十六进制向十进制转换都非常容易,就是“按权相加”。
所谓“权”,也即“位权”。
假设当前数字是 N 进制,那么:•对于整数部分,从右往左看,第 i 位的位权等于N i-1•对于小数部分,恰好相反,要从左往右看,第 j 位的位权为N-j。
更加通俗的理解是,假设一个多位数(由多个数字组成的数)某位上的数字是 1,那么它所表示的数值大小就是该位的位权。
1) 整数部分例如,将八进制数字53627 转换成十进制:从右往左看,第1位的位权为 80=1,第2位的位权为 81=8,第3位的位权为 82=64,第4位的位权为 83=512,第5位的位权为84=4096 ……第n位的位权就为 8n-1。
将各个位的数字乘以位权,然后再相加,就得到了十进制形式。
注意,这里我们需要以十进制形式来表示位权。
再如,将十六进制数字 9FA8C 转换成十进制:从右往左看,第1位的位权为 160=1,第2位的位权为 161=16,第3位的位权为 162=256,第4位的位权为 163=4096,第5位的位权为164=65536 ……第n位的位权就为 16n-1。
将各个位的数字乘以位权,然后再相加,就得到了十进制形式。
将二进制数字转换成十进制也是类似的道理:从右往左看,第1位的位权为 20=1,第2位的位权为 21=2,第3位的位权为 22=4,第4位的位权为 23=8,第5位的位权为 24=16 ……第n位的位权就为 2n-1。
将各个位的数字乘以位权,然后再相加,就得到了十进制形式。
2) 小数部分例如,将八进制数字 423.5176 转换成十进制:小数部分和整数部分相反,要从左往右看,第1位的位权为 8-1=1/8,第2位的位权为 8-2=1/64,第3位的位权为 8-3=1/512,第4位的位权为 8-4=1/4096 ……第m位的位权就为 8-m。
再如,将二进制数字 1010.1101 转换成十进制:小数部分和整数部分相反,要从左往右看,第1位的位权为 2-1=1/2,第2位的位权为 2-2=1/4,第3位的位权为 2-3=1/8,第4位的位权为2-4=1/16 ……第m位的位权就为 2-m。
二进制,八进制,十进制,十六进制之间的转换算法
一、十进制与二进制之间的转换
(1)十进制转换为二进制,分为整数部分和小数部分
①整数部分
方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。
下面举例:
例:将十进制的168转换为二进制
得出结果将十进制的168转换为二进制,(10101000)2
分析:第一步,将168除以2,商84,余数为0。
第二步,将商84除以2,商42余数为0。
第三步,将商42除以2,商21余数为0。
第四步,将商21除以2,商10余数为1。
第五步,将商10除以2,商5余数为0。
第六步,将商5除以2,商2余数为1。
第七步,将商2除以2,商1余数为0。
第八步,将商1除以2,商0余数为1。
第九步,读数,因为最后一位是经过多次除以2才得到的,因此它是最高位,读数字从最后的余数向前读,即10101000
(2)小数部分
方法:乘2取整法,即将小数部分乘以2,然后取整数部分,剩下的小数部分继续乘以2,然后取整数部分,剩下的小数部分又乘以2,一直取到小数部分
为零为止。
如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是0还是1,取舍,如果是零,舍掉,如果是1,向入一位。
换句话说就是0舍1入。
读数要从前面的整数读到后面的整数,下面举例:
例1:将0.125换算为二进制
得出结果:将0.125换算为二进制(0.001)2
分析:第一步,将0.125乘以2,得0.25,则整数部分为0,小数部分为0.25;
第二步, 将小数部分0.25乘以2,得0.5,则整数部分为0,小数部分为0.5;
第三步, 将小数部分0.5乘以2,得1.0,则整数部分为1,小数部分为0.0;
第四步,读数,从第一位读起,读到最后一位,即为0.001。
例2,将0.45转换为二进制(保留到小数点第四位)
大家从上面步骤可以看出,当第五次做乘法时候,得到的结果是0.4,那么小数部分继续乘以2,得0.8,0.8又乘以2的,到1.6这样一直乘下去,最后不可能得到小数部分为零,因此,这个时候只好学习十进制的方法进行四舍五入了,但是二进制只有0和1两个,于是就出现0舍1入。
这个也是计算机在转换中会产生误差,但是由于保留位数很多,精度很高,所以可以忽略不计。
那么,我们可以得出结果将0.45转换为二进制约等于0.0111
上面介绍的方法是十进制转换为为二进制的方法,需要大家注意的是:
1)十进制转换为二进制,需要分成整数和小数两个部分分别转换
2)当转换整数时,用的除2取余法,而转换小数时候,用的是乘2取整法
3)注意他们的读数方向
因此,我们从上面的方法,我们可以得出十进制数168.125转换为二进制为10101000.001,或者十进制数转换为二进制数约等于10101000.0111。
(3)二进制转换为十进制不分整数和小数部分
方法:按权相加法,即将二进制每位上的数乘以权,然后相加之和即是十进制数。
例
将二进制数101.101转换为十进制数。
得出结果:(101.101)2=(5.625)10
大家在做二进制转换成十进制需要注意的是
1)要知道二进制每位的权值
2)要能求出每位的值
二、二进制与八进制之间的转换
首先,我们需要了解一个数学关系,即23=8,24=16,而八进制和十六进制是用这
关系衍生而来的,即用三位二进制表示一位八进制,用四位二进制表示一位十六进制数。
接着,记住4个数字8、4、2、1(23=8、22=4、21=2、20=1)。
现在我们来练习二进制与八进制之间的转换。
(1)二进制转换为八进制
方法:取三合一法,即从二进制的小数点为分界点,向左(向右)每三位取成一位,接着将这三位二进制按权相加,得到的数就是一位八位二进制数,然后,按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的八进制数。
如果向左(向右)取三位后,取到最高(最低)位时候,如果无法凑足三位,可以在小数点最左边(最右边),即整数的最高位(最低位)添0,凑足三位。
例
①将二进制数101110.101转换为八进制
得到结果:将101110.101转换为八进制为56.5
②将二进制数1101.1转换为八进制
得到结果:将1101.1转换为八进制为15.4
(2)将八进制转换为二进制
方法:取一分三法,即将一位八进制数分解成三位二进制数,用三位二进制按权相加去凑这位八进制数,小数点位置照旧。
例:
①将八进制数67.54转换为二进制
因此,将八进制数67.54转换为二进制数为110111.101100,即110111.1011
大家从上面这道题可以看出,计算八进制转换为二进制
首先,将八进制按照从左到右,每位展开为三位,小数点位置不变
然后,按每位展开为22,21,20(即4、2、1)三位去做凑数,即a×22+ b×21 +c×20=该位上的数(a=1或者a=0,b=1或者b=0,c=1或者c=0),将abc排列就是该位的二进制数
接着,将每位上转换成二进制数按顺序排列
最后,就得到了八进制转换成二进制的数字。
以上的方法就是二进制与八进制的互换,大家在做题的时候需要注意的是
1)他们之间的互换是以一位与三位转换,这个有别于二进制与十进制转换
2)大家在做添0和去0的时候要注意,是在小数点最左边或者小数点的最右边(即整数的最高位和小数的最低位)才能添0或者去0,否则将产生错误
三、二进制与十六进制的转换
方法:与二进制与八进制转换相似,只不过是一位(十六)与四位(二进制)的转换,下面具体讲解
(1)二进制转换为十六进制
方法:取四合一法,即从二进制的小数点为分界点,向左(向右)每四位取成一位,接着将这四位二进制按权相加,得到的数就是一位十六位二进制数,然后,按顺序进行排列,小数点的位置不变,得到的数字就是我们所求的十六进制数。
如果向左(向右)取四位后,取到最高(最低)位时候,如果无法凑足四位,可以在小数点最左边(最右边),即整数的最高位(最低位)添0,凑足四位。
①例:将二进制11101001.1011转换为十六进制
得到结果:将二进制11101001.1011转换为十六进制为E9.B
②例:将101011.101转换为十六进制
因此得到结果:将二进制101011.101转换为十六进制为2B.A
(2)将十六进制转换为二进制
方法:取一分四法,即将一位十六进制数分解成四位二进制数,用四位二进制按权相加去凑这位十六进制数,小数点位置照旧。
①将十六进制6E.2转换为二进制数
因此得到结果:将十六进制6E.2转换为二进制为01101110.0010即110110.001
四、八进制与十六进制的转换
方法:一般不能互相直接转换,一般是将八进制(或十六进制)转换为二进制,然后再将二进制转换为十六进制(或八进制),小数点位置不变。
那么相应的转换请参照上面二进制与八进制的转换和二进制与十六进制的转
五、八进制与十进制的转换
(1)八进制转换为十进制
方法:按权相加法,即将八进制每位上的数乘以位权,然后相加之和即是十进制数。
例:①将八进制数67.35转换为十进制
(2)十进制转换为八进制
十进制转换成八进制有两种方法:
1)间接法:先将十进制转换成二进制,然后将二进制又转换成八进制
2)直接法:前面我们讲过,八进制是由二进制衍生而来的,因此我们可以采用与十进制转换为二进制相类似的方法,还是整数部分的转换和小数部分的转换,下面来具体讲解一下:①整数部分
方法:除8取余法,即每次将整数部分除以8,余数为该位权上的数,而商继续除以8,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数起,一直到最前面的一个余数。
②小数部分
方法:乘8取整法,即将小数部分乘以8,然后取整数部分,剩下的小数部分继续乘以8,然后取整数部分,剩下的小数部分又乘以8,一直取到小数部分为零为止。
如果永远不能为零,就同十进制数的四舍五入一样,暂取个名字叫3舍4入。
例:将十进制数796.703125转换为八进制数
解:先将这个数字分为整数部分796和小数部分0.703125
整数部分
小数部分
因此,得到结果十进制796.703125转换八进制为1434.55
上面的方法大家可以验证一下,你可以先将十进制转换,然后在转换为八进制,这样看得到的结果是否一样
六、十六进制与十进制的转换
十六进制与八进制有很多相似之处,大家可以参照上面八进制与十进制的转换自己试试这两个进制之间的转换。