$ $众所周知,将二进制转化为十进制数十分的方便,而用十进制转换为二进制时,有一种方法,十分的方便.只需要将原数不断除以二的余数写下来后倒着遍历一遍就是二进制了。
例如 :
$ $$7/2=3…1 $
$ $$3/2=1…1 $
$ $$1/2=0…1 $
$ $$所以7的二进制表示为111$
原理:
$7的二进制表达为111$
$7=111B$
$7=1\times2^2+1\times2^1+1\times2^0$
$7/2=1\times2^2/2+1\times2^1/2+1\times2^0/2$
明显前面两项可以被除尽,而最后的$1\times2^0/2$无法被整除,因此会存在余数1,这个1就是$1\times2^0$,而$2^0$=1,所以$2^0$对取余数无影响,这个余数1就是该幂的系数1。所以这个1就是二进制的最后一位,那么去掉余数后原数变为3
$3=1\times2^1+1\times2^0$
$同理得余数为1$
$1=1\times2^0$
这个例子可能还是有点难以理解,我们来看看其他进制如16进制
$首先16进制转10进制$
$A9=10\times16^1+9\times16^0=169$
$169=A9$
$169/16=10…9$
$10/16=0…10$
$从下往上数,10为A,所以是A9$
$A9=10\times16^1+9\times16^0=169$
$169=10\times16^1+9\times16^0$
$169/16=10\times16^1/16+9\times16^0/16$
$9\times16^0$无法被整除,因此余数为9($16^0=1$,所以9$\times1%16=9$)这个余数9也就是系数9
$10=10\times16^0$
$10/16=10\times16^0/16$
$余数为10,又因为在十六进制中10为A,所以为A9$
$每一步得出来的都是最后面的系数$
$所以把系数从下往上数加起来即可获得最后的数$
所以$169=A9$