二进制、八进制、十进制、十六进制之间转换
二进制、八进制、十进制、十六进制之间转换(含小数部分)

二进制、八进制、十进制、十六进制之间转换一、十进制与二进制之间的转换(1)十进制转换为二进制,分为整数部分和小数部分①整数部分方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。
下面举例:例:将十进制的168转换为二进制分析:(2)例1分析:第一步,将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)二进制转换为十进制不分整数和小数部分1)2)二、(1)②将二进制数1101.1转换为八进制得到结果:将1101.1转换为八进制为15.4(2)将八进制转换为二进制方法:取一分三法,即将一位八进制数分解成三位二进制数,用三位二进制按权相加去凑这位八进制数,小数点位置照旧。
二进制,十进制,八进制,十六进制之间的转换

⼆进制,⼗进制,⼋进制,⼗六进制之间的转换计算机内部只有⼆进制,包括字符数据等int i = 15; //00000000 00000000 00000000 00001111 ==> 1字节= 8位1Byte = 8 bitint 有4个字节,即32位char c = 'a'; //00000000 01000001计算机内部使⽤的⼆进制位都是补码的形式(此处⽤1个字节表⽰)15:原码00001111 ==>补码 00001111整数的原码和补码相同-15:15的原码 ==>反码+1 ==> 补码原码00001111 ==> 反码11110000 +1 ==>补码 11110001如果⽤2个字节表⽰-15的反码原码00000000 00001111反码11111111 11110001如果⽤3个字节表⽰-15的反码原码00000000 00000000 00001111反码11111111 11111111 11110001以此类推可以⽤System.out.println(Integer.toBinaryString(a));打印验证int i=-1;//11111111 11111111 11111111 11111111int i = -2147483648(int中最⼩的负数)//100000000 00000000 00000000 00000000⼗进制是⼈类的习惯计算机在输出时候根据⼈类习惯输出10进制赋值的时候默认是赋值10进制计算机默认接受10进制,⾃动转换为⼆进制数据16进制是⼆进制的简写⽅便⼈类书写和记忆0xff -> 11111111转换int x = 020;//⼋进制 0开头⼋进制==>⼗进制020==>2*8+00120 ==> 1*8^2 + 2*8^1 + 001234 --> 1*8^3 + 2*8^2 + 3*8 +4x = 0x2E;//⼗六进制 0x开头⼗六进制 ==>⼗进制x=0x2E; ==> 2*16^1 + e =46x= 0x1234 ==> 1*16^3 + 2*16^2 + 3*16 + 4⼆进制 ==> ⼗进制0000 1111 ==> 1*2^3 + 1*2^2 + 1*2 + 1 =150100 1001 ==> 1*2^6 + 1*2^3+1 =⼗进制 ==>⼆进制1)除⼆取余28/2 14/2 7/2 3/2 1/2 00 0 1 1 1 0 ==>倒序1 110037/2 18/2 9/2 4/2 2/21 0 1 0 1 ==>倒序(如果需要则前⾯补0) 0001 01012)对应权重 (简化算法)int x =37;32 + 4 +10010 0101 // 128 64 32 16 8 4 2 10 0 1 0 0 1 0 1998998 - 512 = 486 - 256 = 230 -128 = 102 - 64 = 38 -32 =6-4 =2-2 =01111100110 //512 256 128 64 32 16 8 4 2 11 1 1 1 1 0 0 1 1 0⼋进制 ==> ⼆进制int x = 01234;⽤三个⼆进制位表⽰⼀个⼋进制位000 001 010 011 100⼗六进制 ==> ⼆进制int x = 0x1234; ⽤4个⼆进制表⽰⼀个16进制位0001 0010 0011 01000x12345678==>0001 0010 0011 0100 0101 0110 0111 1000⼆进制 ==> 16进制0000 0111 1111 1110 ==> 0x07FE;⼀般⽤16进制表⽰⼆进制例x = 0x7FE ;//0000 0111 1111 1110,直接赋值则以为是⼋进制(因为以0开头)。
二进制,八进制,十进制,十六进制的相互转换

⼆进制,⼋进制,⼗进制,⼗六进制的相互转换常⽤进制数:⼆进制,⼋进制,⼗进制,⼗六进制进制理解计算机中硬件之间的信息传递是由电流确定,假如⼀个半导体允许通过的电流是5A,如果电流通过的为5A,则通过,计为1,如果通过的电流⼩于5A,则不通过,计为0。
由此,出现两种情况的判断,与或⾮。
电流的传递由0或1来完成,由此引申出⼆进制数的概念,以便底层硬件有共同的“语⾔”,即机器语⾔,相互沟通和交流。
我们⽣活中⼀般数值的运算是⼗进制。
就是满10进1,个⼗百千万,依次递进。
由此,可以类⽐。
⼆进制(Binary):0,1。
基数为2,逢⼆进⼀。
表⽰:(111)2或者(111)B⼋进制(Octal number system):0,1,2,3,4,5,6,7。
基数为8,逢⼋进⼀。
表⽰:(111)8或者(111)O⼗进制(Decimal system):0,1,2,3,4,5,6,7,8,9。
基数为10,逢⼗进⼀。
表⽰:(111)10或者(111)D⼗六进制(Hexadecimal):0,1,2,3,4,5,6,7,8,9,A(10),B(11),C(12),D(13),E(14),F(15)。
基数为16,逢⼗六进⼀。
表⽰:(111)16或者(111)Hn进制:(逢n进1)个位数:n0( 0个8)⼗位数:n1( 1个8)百位数:n2( 8个8)进制转换1.⼗进制转其他进制① 除⼆取余法(整数部分):把被转换的⼗进制整数反复除以2,直⾄商为0,所得的余数(从末位读起)就是这个数的⼆进制表⽰。
② 乘⼆取整法(⼩数部分):将⼩数部分乘以2,然后取整数部分,剩下的⼩数部分继续乘以2,然后取整数部分,剩下的⼩数部分⼜乘以2,⼀直取到⼩数部分为零为⽌。
如果永远不能为零,就同⼗进制数的四舍五⼊⼀样,按照要求保留多少位⼩数时,就根据后⾯⼀位是0还是1,取舍,如果是零,舍掉,如果是1,向⼊⼀位。
换句话说就是0舍1⼊。
读数要从前⾯的整数读到后⾯的整数。
二进制、八进制、十进制、十六进制的转换

⼆进制、⼋进制、⼗进制、⼗六进制的转换⼆进制(binary)数据是⽤0和1来表⽰的数,它的基数为2,进位规则是“逢2进1”。
⼋进制(Octal)数据是⽤ 0~7这8数来表⽰⼀个数,它的基数为8,⼋进制就是“逢8进1”,⼋进制的数和⼆进制数可以按位对应(⼋进制⼀位对应⼆进制三位)。
⼗进制(Decimal)数据是⽤0~9这10位来表⽰⼀个数,它的基数为10,⼗进制就是“逢10进1”。
⼗六进制(Hexadecimal)数据是⽤0~9和A~F(10~15)这16位来表⽰⼀个数,它的基数为16,⼗六进制就是“逢16进1”。
⼗六进制的数和⼆进制数可以按位对应(⼗六进制⼀位对应⼆进制四位)。
⼀、(⼆、⼋、⼗六进制)转换为⼗进制1.⼆进制转换为⼗进制⽅法:⼆进制数从低位到⾼位(即从右往左)计算,第1位的权值是2的0次⽅,第2位的权值是2的1次⽅,第3位的权值是2的2次⽅,第n 位的权值是2的(n-1)次⽅,把最后的结果相加的值就是⼗进制的值了。
eg:(1010)2=0*2^0+1*2^1+0*2^2+1*2^3=(10)102.⼋进制转换为⼗进制⽅法:⼋进制数从低位到⾼位(即从右往左)计算,第1位的权值是8的0次⽅,第2位的权值是8的1次⽅,第3位的权值是8的2次⽅,第n 位的权值是8的(n-1)次⽅,把最后的结果相加的值就是⼗进制的值了。
eg:(23)8=3*8^0+2*8^1=(19)103.⼗六进制转换为⼗进制⽅法:⼗六进制数从低位到⾼位(即从右往左)计算,第1位的权值是16的0次⽅,第2位的权值是16的1次⽅,第3位的权值是16的2次⽅,第n位的权值是16的(n-1)次⽅,把最后的结果相加的值就是⼗进制的值了。
eg:(3A)16=A*16^0+3*16^1=(58)10总结:任意进制转换为⼗进制算法,从低位到⾼位(即从右往左),依次将第n位的值*任意进制的(n-1)次⽅相加。
⼆、⼗进制转换为(⼆、⼋、⼗六进制)1.⼗进制转换为⼆进制⽅法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,⽽商继续除以2,余数⼜为上⼀个位权上的数,这个步骤⼀直持续下去,直到商为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入。
二进制,八进制,十进制,十六进制之间的转换

二进制,八进制,十进制,十六进
制之间的转换
方法是:小数除以2得到余数,即小数除以2,余数就是砝码上的数,得到的商值继续除以2。
根据这个步骤,它将继续向下操作,直到商360被重新知道为0。
例如:把十进制数 150 转换为二进制数:如下:
•2
二进制转换为十进制的方法是:将二进制数按重量展开,相加得到十进制数。
•3
二进制转换为八进制的方法是:三个二进制数通过重量展开相加得到一个八进制数。
(请注意,3位二进制到八进制的转换是从右向左开始的,不足时加0)。
•4
八进制数转换成二进制数的方法如下:八进制数除以2得到二进制数,每个八进制数由三个二进制数组成。
不足时,在最左边补零。
•5
二进制到十六进制的方法类似于二进制到八进制的方法,八进制是三合一,十六进制是四合一。
(注意,4位二进制到十六进制的转换是从右到左,不足时加0)。
•6
十六进制转换成二进制的方法是:将十六进制数除以2得到二进制数,每个十六进制数为4个二进制数。
油量不足时,在最左边加零。
•7
十进制转八进制或者十六进制
将十进制转换为八进制或十六进制,然后除以8或16,直到商为0。
•8
将八进制或十六进制转换成十进制的方法是:将八进制和十六进制香烟组的二进制数按重量展开相加得到十进制数。
•9
八进制 >十六进制方法:将八进制转换为二进制,然后再将二进制转换为十六进制,小数点位置不变。
•10
十六进制 >八进制
方法:将十六进制转换成二进制,再将二进制转换成八进制,小数点位置不变。
二进制、 八进制、十进制和十六进制转化方法

二进制、八进制、十进制、十六进制之间转换一、十进制与二进制之间的转换(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。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二步, 将小数部分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
上面的方法大家可以验证一下,你可以先将十进制转换,然后在转换为八进制,这样看得到的结果是否一样
六、十六进制与十进制的转换
十六进制与八进制有很多相似之处,大家可以参照上面八进制与十进制的转换自己试试这两个进制之间的转换。
通过上面对各种进制之间的转换,我们可以将前面的转换图重新完善一下:
本文介绍了二进制、十进制、八进制、十六进制四种进制之间相互的转换,大家在转换的时候要注意转换的方法,以及步骤,特别是十进制转换为期于三种进制之间,要分为整数部分和小数部分,最后就是小数点的位置。
但是要保证考试中不出现错误还是需要大家经常练习,这样才能熟能生巧。