二进制、十进制、八进制、十六进制四种进制之间相互的转换
- 格式:docx
- 大小:22.22 KB
- 文档页数:6
进制之间转换(含小数部分)进制之间转换(含小数部分)二、八、十、十六之间的转换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。
二进制,八进制十进制十六进制之间数据转换十进制转二进制(整数及小数部分):1、把该十进制数,用二因式分解,取余。
以235为例,转为二进制235除以2得117,余1117除以2得58,余158除以2得29,余029除以2得14,余114除以2得7,余07除以2得3,余13除以2得1,余1从得到的1开始写起,余数倒排,加在它后面,就可得11101011。
2、把十进制中的小数部份,转为二进制。
把该小数不断乘2,取整,直至没有小数为止,注意不是所有小数都能转为二进制!以0.75为例,0.75剩以2得1.50,取整数10.50剩以2得1,取整数1,顺序取数就可得0.11。
1、二进制数、八进制数、十六进制数转十进制数有一个公式:二进制数、八进制数、十六进制数的各位数字分别乖以各自的基数的(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=272D 2、十进制数转二进制数、八进制数、十六进制数方法是相同的,即整数部分用除基取余的算法,小数部分用乘基取整的方法,然后将整数与小数部分拼接成一个数作为转换的最后结果。
例:见四级指导16页。
3、二进制数转换成其它数据类型3-1二进制转八进制:从小数点位置开始,整数部分向左,小数部分向右,每三位二进制为一组用一位八进制的数字来表示,不足三位的用0补足,就是一个相应八进制数的表示。
010110.001100B=26.14Q八进制转二进制反之则可。
3-2二进制转十进制:见13-3二进制转十六进制:从小数点位置开始,整数部分向左,小数部分向右,每四位二进制为一组用一位十六进制的数字来表示,不足四位的用0补足,就是一个相应十六进制数的表示。
二、八、十及十六进制的表示及相互转换在计算机科学中,二进制、八进制、十进制和十六进制是最基本的数字系统。
这些数字系统在计算机中应用广泛,因为它们可以用于存储、表示和传输数字数据。
1. 二进制二进制是一种数字系统,它只包含两个数字0和1。
在计算机中,每个数字都用一个二进制位(bit)来表示。
一个二进制位只能是0或1,而一个字节(byte)包含8个二进制位。
例如,十进制数20在二进制中表示为10100。
这是通过将20除以2,得到10余0,然后将10除以2,得到5余0,以此类推,直到商为0为止。
然后将余数按照从下往上的顺序排列,即得到10100。
2. 八进制八进制是一种数字系统,它只包含八个数字0、1、2、3、4、5、6和7。
在计算机中,每个八进制数字都用三个二进制位来表示。
一个八进制数字可以通过将每个二进制位组合成一个三位二进制数来得到。
例如,十进制数20在八进制中表示为24。
这是通过将20除以8,得到2余4,然后将商除以8,得到0余2,即得到24。
3. 十进制十进制是一种数字系统,它包含十个数字0、1、2、3、4、5、6、7、8和9。
在计算机中,每个十进制数字都用四个二进制位来表示。
一个字节可以存储两个十进制数字。
例如,十进制数20在十进制中表示为20。
4. 十六进制十六进制是一种数字系统,它包含十六个数字0、1、2、3、4、5、6、7、8、9、A、B、C、D、E和F。
在计算机中,每个十六进制数字都用四个二进制位来表示。
一个字节可以存储两个十六进制数字。
例如,十进制数20在十六进制中表示为14。
这是通过将20除以16,得到1余4,然后将商除以16,得到0余1,即得到14。
相互转换在计算机中,我们经常需要将数字在不同的数字系统之间相互转换。
下面介绍几种常用的方法:1. 二进制转换为十进制将二进制数从右往左依次乘以2的幂次方,幂次方从0开始,每次加1。
然后将得到的结果相加即可得到十进制数。
例如,二进制数10100可以转换为十进制数20。
二进制、八进制、十进制、十六进制之间转换一、十进制与二进制之间的转换(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入。
⼆进制、⼋进制、⼗进制、⼗六进制的转换⼆进制(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 。
二进制,八进制,十进制,十六进制之间的相互转换和相关概念二进制:计算机只认识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。
2,8,10,16进制之间的相互转换我们知道日常生活中存在很多进制,常见的有二进制(计算机中的进制常用0、1表示),十进制、八进制、十六进制、六十进制(如时间度分秒)、二十四进制(一天24小时)等。
接下来为了熟练掌握二、八、十、十六进制的相互转化。
我们先从各个进制转化为10进制,并了解各个进制表示数的方法,从最低位个位向高位计算开始:二进制(逢2进1)在计算机中,电路只有关闭和开启状态,为了表示这种状态就用数字0、1来表示;例如计数3次可以用0010表示用数字0、1表示,2进制换算方法:2进制数的第1位的权值为2的0次方,第2位的权值为2的1次方,第3位的权值为2的2次方……所以,在第N(N从0开始)位上,如果是是数X (X 大于等于0,并且X小于等于1,即:1)表示的大小为(X-1)* 2的N次方。
图1八进制(逢8进1)用数字0、1、2、3、4、5、6、78进制多位数字母需要换算,换算方法:8进制数的第1位的权值为8的0次方,第2位的权值为8的1次方,第3位的权值为8的2次方……所以,在第N(N从0开始)位上,如果是是数X (X 大于等于0,并且X小于等于7,)表示的大小为(X -1)* 8的N次方。
图2十六进制(逢16进1)用数字0、1、2、3、4、5、6、7、8、9、A(10)、B(11)、C(12)、D(13)、E(14)、F(15)16进制多位数字母需要换算,换算方法:16进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……所以,在第N(N从0开始)位上,如果是是数X (X 大于等于0,并且X小于等于15,即:F)表示的大小为X * 16的N次方。
图310进制转化为其他进制只需要将该数用除法的形式进行逆运算,就能得到各个进制之间的关系:如10(10进制)转为2进制的方法:图4所以二进制的最终表示为:1010如果是转化为其他进制,如8进制的话,就以8为底数作除法;方法同上。
1.首先我们从二进制转到八进制,这里以1010111为例。
2将二进制数从右到左每3位数分成一组,即“1 010 111”3将每组数从右到左分别乘以1,2,4,再相加,即1 2 7。
所求八进制即为127 现在我们将八进制转为二进制如1 2 7转为二进制5将每位数字拆为124与0,1的乘积组合,即1=0x4+0x2+1x1, 2=0x4+1x2+0x1,7=4x1+2x1+1x16将上述数字从左往右排列即可即1001111二进制、八进制、十进制、十六进制之间的转换进制也就是进制位,对于接触过电脑的人来说应该都不陌生,我们常用的进制包括:二进制、八进制、十进制与十六进制,它们之间区别在于数运算时是逢几进一位。
比如二进制是逢2进一位,十进制也就是我们常用的0-9是逢10进一位。
具体的用法小编今天不着重解释,主要针对他们之间的转换加以讨论(今天只讲整数)。
二进制与十进制之间的转换十进制转二进制方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止。
(具体用法如下图)二进制转十进制方法为:把二进制数按权展开、相加即得十进制数。
(具体用法如下图)二进制与八进制之间的转换二进制转八进制方法为:3位二进制数按权展开相加得到1位八进制数。
(注意事项,3位二进制转成八进制是从右到左开始转换,不足时补0)。
(具体用法如下图)八进制转成二进制方法为:八进制数通过除2取余法,得到二进制数,对每个八进制为3个二进制,不足时在最左边补零。
(具体用法如下图)二进制与十六进制之间的转换二进制转十六进制方法为:与二进制转八进制方法近似,八进制是取三合一,十六进制是取四合一。
(注意事项,4位二进制转成十六进制是从右到左开始转换,不足时补0)。
(具体用法如下图)十六进制转二进制方法为:十六进制数通过除2取余法,得到二进制数,对每个十六进制为4个二进制,不足时在最左边补零。
(具体用法如下图)十进制与八进制与十六进制之间的转换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,一直取到小数部分为零为止。
如果永远不能为零,就同十进制数的四舍五入一样,按照要求保留多少位小数时,就根据后面一位是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. 二进制(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次方,然后相加即可得到小数位的十进制数(按权相加法)。
3. 二进制(Binary)——>十六进制(Hex)例子1:将二进制数(10010)2转化成十六进制数。
(10010)2=(0001 0010)2=(1 2)16=(12) 16例子2:将二进制数(0.1010)2转化为十六进制数。
(0.10101)2=(0. 1010 1000)2=(0. A 8)16=(0.A8)16诀窍:因为每四位二进制数对应一位十六进制数,所以,以小数点为界,整数位则将二进制数从右向左每4位一隔开,不足4位的在左边用0填补即可;小数位则将二进制数从左向右每4位一隔开,不足4位的在右边用0填补即可。
二进制、十进制、八进制、十六进制四种进制之间相互的转换一.在计算机应用中,二进制使用后缀b表示;十进制使用后缀d表示八制使用后缀Q表示,十六制使用后缀H表示。
二.二进制,十六进制与十进制的计算转换1.二进制转换为十进制计算公式:二进制数据X位数字乘以2的X-1次方的积的总和例:10101011b=( )d相应的十进制值即为:27 +25+23+21+20=128+32+8+2+1=1712.十六进制转换十进制计算公式:二进制数据X位数字乘以16的X-1次方的积的总和(与二进制转换十制进同理的,将底数换为16)注意:在十六进制中,10-15依次用A,B,C,D,E,F表示例:1F3E H=()d计算:1*16的3次方+15*16的2次方+3*16的1次方+14*16的0次方=1*4096+15*256+3*16+14=7998三.十进制与二进制,十六制的计算转换1.十进制转换为二进制十进制数据数字除以2的余数的逆序组合例:404d=( )b2|404余02|202余02|101余02|50余12|25余02|12余12|6余02|3余12|1计算结果便是:1101010002.十进制转换十六进制。
与上面同理,注意的是10以上的数字用字母表示,除数是16十六进制与二进制的转换,建议通过十进制来进行中转。
带小数点的十进制转换为二进制时同理,小数店后的数位指数为负指数===================================================================== =================关于“进制之间的转换”问题的分析指导在计算机文化一书中,在其中一个章节里面详细介绍了进制之间的转换,而且在考试中进制转换也占了一定的比例,虽然分数不是很多,但是因为平时大家接触的不多,并且有点繁复,所以很多学员在做这种题目,要么选择猜答案,要么选择放弃。
笔者觉得只要掌握了方法,其实这些题目也很简单的,下面我就对进制的转换进行具体的分析和讲解,以供大家参考。
⼆进制、⼋进制、⼗进制、⼗六进制之间的转换⼆进制是Binary,简写为B⼋进制是Octal,简写为O⼗进制为Decimal,简写为D⼗六进制为Hexadecimal,简写为H⽅法为:⼗进制数除2取余法,即⼗进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为⽌。
读数要倒叙读。
⼩数:乘2取整法,即将⼩数部分乘以2,然后取整数部分,剩下的⼩数部分继续乘以2,然后取整数部分,剩下的⼩数部分⼜乘以2,⼀直取到⼩数部分为零。
如果永远不能为零,就同⼗进制数的四舍五⼊⼀样,按照要求保留多少位⼩数时,就根据后⾯⼀位是0还是1,取舍,如果是零,舍掉,如果是1,向⼊⼀位。
换句话说就是0舍1⼊。
读数要从前⾯的整数读到后⾯的整数,即读数要顺序读。
0.125 转⼆进制第⼀步,将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.125 x 2 = 0.25 00.25 x 2 = 0.5 00.5 x 2 = 1.0 1150.125 转⼆进制10010110.0010.45 转⼆进制(保留到⼩数点第四位)第⼀步,将0.45乘以2,得0.9,则整数部分为0,⼩数部分为0.9;第⼆步, 将⼩数部分0.9乘以2,得1.8,则整数部分为1,⼩数部分为0.8;第三步, 将⼩数部分0.8乘以2,得1.6,则整数部分为1,⼩数部分为0.6;第四步, 将⼩数部分0.6乘以2,得1.2,则整数部分为1,⼩数部分为0.2; 算到这⼀步就可以了,因为只需要保留四位⼩数第五步, 将⼩数部分0.2乘以2,得0.4,则整数部分为0,⼩数部分为0.4;第六步, 将⼩数部分0.4乘以2,得0.8,则整数部分为0,⼩数部分为0.8;后⾯会⼀直循环重复第七步, 将⼩数部分0.8乘以2,得1.6,则整数部分为1,⼩数部分为0.6;。
二进制八进制十进制十六进制四种算法之间的互相转换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)十进制转换为二进制,分为整数部分和小数部分①整数部分方法:除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入。
二进制、十进制、八进制、十六进制四种进制之间相互的转换一.在计算机应用中,二进制使用后缀b表示;十进制使用后缀d表示八制使用后缀Q表示,十六制使用后缀H表示。
二.二进制,十六进制与十进制的计算转换1.二进制转换为十进制计算公式:二进制数据X位数字乘以2的X-1次方的积的总和例:10101011b=( )d相应的十进制值即为:27 +25+23+21+20=128+32+8+2+1=1712.十六进制转换十进制计算公式:二进制数据X位数字乘以16的X-1次方的积的总和(与二进制转换十制进同理的,将底数换为16)注意:在十六进制中,10-15依次用A,B,C,D,E,F表示例:1F3E H=()d计算:1*16的3次方+15*16的2次方+3*16的1次方+14*16的0次方=1*4096+15*256+3*16+14=7998三.十进制与二进制,十六制的计算转换1.十进制转换为二进制十进制数据数字除以2的余数的逆序组合例:404d=( )b2|404余02|202余02|101余02|50余12|25余02|12余12|6余02|3余12|1计算结果便是:1101010002.十进制转换十六进制。
与上面同理,注意的是10以上的数字用字母表示,除数是16十六进制与二进制的转换,建议通过十进制来进行中转。
带小数点的十进制转换为二进制时同理,小数店后的数位指数为负指数===================================================================== =================关于“进制之间的转换”问题的分析指导在计算机文化一书中,在其中一个章节里面详细介绍了进制之间的转换,而且在考试中进制转换也占了一定的比例,虽然分数不是很多,但是因为平时大家接触的不多,并且有点繁复,所以很多学员在做这种题目,要么选择猜答案,要么选择放弃。
笔者觉得只要掌握了方法,其实这些题目也很简单的,下面我就对进制的转换进行具体的分析和讲解,以供大家参考。
在书主中一共提到了四种进制,分别是二进制、八进制、十进制、十六进制,而八进制和十六进制是从二进制衍生而来的,八进制和十六进制类似。
因此,我们可以将进制分成三大部分,即十进制、二进制、八和十六进制之间相互换算,如图。
一、十进制与二进制之间的转换(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上面的方法大家可以验证一下,你可以先将十进制转换,然后在转换为八进制,这样看得到的结果是否一样六、十六进制与十进制的转换十六进制与八进制有很多相似之处,大家可以参照上面八进制与十进制的转换自己试试这两个进制之间的转换。