众所周知在人类世界里,我们使用的是10进制,对于长着十根手指头的我们,十进制大大便利了我们的生活,然而在计算机的世界,只有高电平和低电平两个信号,因此计算机使用的是2进制,要实现人类和计算机的沟通和交互,进制转换是无法避开的问题。

  在10进制中,进位规律是:逢十进一,因此假设有一个五位数(10进制):ABCDE,则这个数有1个E,10个D,100个C,1000个B,10000个A,即

  ABCDE=A*104+B*103+C*102+D*101+E*100       (A、B、C、D、E都大于等于0,小于等于9)

显而易见,该规律推广到n位数仍然成立。

  同理,我们可以推出:

  在二进制中,一个n位数:An-1An-1.....A= An-1*2n-1 + An-2*2n-2 + ...+A0*20         (A0到An-1都要么为0要么为1)

   这就是将2进制转换成10进制最直观易懂方法,事实上无论多少进制,都可以用这种方法转化为10进制,这种方法被称为乘幂法。

  那么10进制又该如何转换为2进制呢?

  任何两个数相除都会得到一个商和一个余数,在此我们先不管余数,只关注商。简单来说,令待转换的数为商0;可以用商0除以2,得到商1;再用商1除以2,得到商2;再用商2除以2,得到商3;......;如此往复一直到得到商n等于1,则排列1商n到商0,奇数取1,偶数取0,即可得到该10进制转换后的2进制。(事实上,由于是2进制,因此商的奇偶性和余数是0还是1是一一对应的。)

  以10进制数235为例:                 

235(奇),235÷2=117(奇),117÷2=58(偶),

58÷2=29(奇),29÷2=14(偶),14÷2=7(奇),

7÷2=3(奇),3÷2=1(奇);

  因此235对应的2进制数位11101011。