MENU

进制转换|十进制二进制间相互转换的几种方法

February 8, 2019 • 我爱学习

一、一些相关的概念

  1. 位权:一个数各个位置上的基本数值,简称权;不同数制的权是不同的,权乘上对应位置上的数码就等于该位上的数值大小。
  2. 基数:每个数位上能使用的数码个数。

例如:十进制有十个数码0~9,基数为十;二进制有两个数码1~2,基数为2。

二、十进制转换为二进制的两种方法

  • 整数的转换

(1)减权定位法

从二进制数高位起,依次用待转换的十进制数与二进制的各位权值作比较;如果够减,则该位系数Ki=1,反之则为0;同时减去二进制该位的权值,余数作为下一次比较的值。

例:将十进制325转换为二进制数。

首先确定二进制的最高位,因为512(2^9)>325>256(2^8),所以从第八位开始比较,即Ki=K8。

首先,325-256 = 69,够减,则K8=1;第二步,由于69-125<0,不够减,则K7=0;接下来,69-64 = 5,够减,则K6=1;以此类推。。。完整过程如下表:

               最后即可得出结果为:1 0100 0101 B

(2)除基取余法

将十进制数除以基数二,其余数为二进制最低位,再用其商除2,其余数为次低位,如此反复直,到商0。

  • 小数的转换

(1)减权定位法:与整数的相似,只不过Ki从Ki=K-1开始。

例如:将十进制0.645转换为二进制小数。首先K-1项为:0.645-0.5=0.145,K-1=1;K-2项:0.145-0.25<0,K-2=0;如此继续下去;精度随你喜欢。

(2)乘基取整法:将十进制小数乘以二进制的基数,取结果的整数部分作为二进制该位的数码。

三、二进制转换为十进制的两种方法

  • 整数的转换

(1)按权相加法:将二进制每一位的数码乘以它的权值,将之一直相加。

(2)逐次乘积相加法:现将二进制数按位列出,从高位开始,将二进制高位上的数码乘以该位的基数再与后一位的二进制数码相加再乘以本位的基数。

  • 小数的转换

(1)按权相加法:同整数。

(2)依次除基相加法:方法与整数的乘基相加法类似,只不过转换从最低位开始,将二进制低位上的数码除以该位的基数再与前一位的二进制数码相加再除以以本位的基数。