十进制是我们生活中常用的进制,而二进制是计算机世界里使用的进制,二进制与十进制的转换是最基础的进制转换。
二进制到十进制的转换可以分为整数和小数两部分,使用的方法都大同小异。对于整数部分,转换公式是: abcd(2)=d×2^0+c×2^1+b×2^2+a×2^3。即abcd为一个二进制整数,从后往前,每一位的数字陆续乘以2的0次方、1次方、2次方、3次方,相加得到的数字就是十进制数字。如:1011=1×2^0+1×2^1+0×2^2+1×2^3=12。
对于小数部分,转换公式为:0.efg(2)=e×2^(-1)+f×2^(-2)+g×2^(-3)。即0.efg为一个二进制小数,从前往后,每一位小数陆续乘以2的-1次方、-2次方和-3次方,相加得到的数字就是十进制数字。如:0.101=1×2^(-1)+0×2^(-2)+1×2^(-3)=0.625。
那如果一个数字同时具有整数和小数呢?很简单,将数字分成整数和小数两部分,分别以整数公式和小数公式转换,最后相加即可。
再说从十进制到二进制的转换。整数部分的转换方法是“除2取余,逆向排列”的方法。即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数。
如将十进制的43转换为二进制的步骤如下:将商43除以2,商21余数为1;将商21除以2,商10余数为1;将商10除以2,商5余数为0;将商5除以2,商2余数为1;将商2除以2,商1余数为0; 将商1除以2,商0余数为1; 读数从最后的余数向前读,即(43)D=(101011)B。
如果是小数,我们可以采取“乘2取整,顺序排列”的方法。即用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,此时0或1为二进制的最后一位。或者达到所要求的精度为止。然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。
如将十进制的0.625转化为二进制的步骤如下:0.625*2=1.25,取出整数部1;0.25*2=0.5,取出整数部分0;0.5*2=1,取出整数部分1。最后得到的结果为0.101。
如上,就是二进制与十进制的转换方式。