十进制与二进制的互相转换,以及二进制转八进制、十六进制方法详解

  1.1)十进制整数转换为二进制整数

  十进制整数转换为二进制整数采用"除2取余,逆序排列"法。即,用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

  例如:10=1010(二进制)
  用10除以2、商5余0,再用5除以2、商2余1,再用2除以2、商1余0,最后用1除以2、商0于1,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列,即10的二进制数为1010

  1.2)二进制整数转换位十进制整数

  二进制整数转换位十进制整数采用从右到左,依次用二进制的每位数乘以2的相应次方,然后求和。

  例如:1010=10(十进制)
  从右到左为0 1 0 1,依次乘以2的相应次方,那么就是:0乘以2的0次方,1乘以2的1次方,0乘以2的2次方,1乘以2的3次方;然后求和,即1010的十进制数为0+2+0+8=10。

  2.1)十进制小数转换为二进制小数

  十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,此时0或1为二进制的最后一位。或者达到所要求的精度为止。
  然后把取出的整数部分按顺序排列起来,先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位。

  十进制小数转二进制
  例如:0.625=0.101(二进制)
  0.6252=1.25————取出整数部分1
  0.252=0.5—————取出整数部分0*
  0.52=1——————-取出整数部分1**
  然后依次排列,即0.625的二进制数为0.101.

  2.2)二进制小数转换为十进制小数

  二进制小数转换为十进制小数的方法和整数转换大同小异,仍然时用二进制的每位数乘以2的相应次方,不过顺序采用的是从左到右,然后求和。

  例如:0.101=0.625(十进制)
  从左到右为101,依次乘以2的相应次方,那么就是:
  12^-1=0.5;
  0
2^-2=0;
  1*2^-3=0.125;
  然后求和,即101的十进制数为0.5+0+1.25=6.25。

  3)二进制数与八进制数的相互转换

  二进制转换为八进制的方法是“取三合一法”,即以二进制的小数点为分界线,向左(向右)每三位取成一位。当位数不够三位时,向前(向后)补零。分好组后,将每三位二进制一一进行按权相加,然后按顺序排列,小数点的位置不变,得到的数字就是八进制数。

  例如:10.10=2.5(八进制)
  以小数点为分界线,分为两个二进制数,分别为010、100(不够三位向前(向后)补零),那么整数位就是:
  02^0=0;
  1
2^1=2;
  0*2^3=0;
  然后求和,即010的八进制数为0+2+0=2.
  同理,小数位100的八进制数为0.5.
  那么二进制数10.10的把八进制数为2.5。

  八进制转换二进制的方法与上述二进制转换八进制的方法刚好相反。用一位八进制数分成三位二进制数,再用得到的每三位二进制数按权相加,最后得到二进制数,小数点依然不变。

  例如:2.5=10.10(二进制)
  将八进制数的每一位分成三位二进制数,分别为010、100,那么2.5的八进制数为010.100。

  (需要注意的是,八进制数,每一位最小为0,最大为7,逢8进1。而且通常八进制数都是以0开头,以便于和十进制、十六进制区分,即,在得到的八进制数最高位之前补零)

  4)二进制数与十六进制数的互相转换

  二进制数转换为十六进制数和上述二进制数转换为八进制数基本相同,不同的是“取四合一法”,即每四位取成一位。以小数点为分界,当位数不够四位时,同样的向前(向后)补零,然后再将每四位二进制数一一按权相加,然后顺序排列,小数点的位置依然不变。得到的数字就是十六进制数。

  (需要注意的是十六进制数的表示方法,如下所示:
1=1; 9=9;
2=2; 10=a;
3=3; 11=b;
4=4; 12=c;
5=5; 13=d;
6=6; 14=e;
7=7; 15=f;
8=8;
而且通常十六进制的数都是以0x开头,以便于和十进制、八进制进行区分,即,在得到的十六进制数最高为之前加上0x。)

  例如:1111.0101=0xf.5
  那么整数位1111就是:
  12^0=1;
  1
2^1=2;
  12^2=4;
  1
2^3=8;
  然后求和,即1111的十六进制数位f。
  同理,小数位0101的十六进制数位5.
  再然后按顺序排列可得1111.0101的十六进制数为f.5。

  十六进制转换为二进制的方法与上述二进制转换十六进制相反,思路都是一样的。用一位十六进制数分为四位二进制数,再将得到的每四位二进制数按权相加,最后得到二进制数,小数点位置依然不变。

本篇解释如有不当,还望给予批评指点。

你可能感兴趣的:(计科)