二进制十进制转换史上最牛逼算法!!

十进制转二进制

相信学过计算机的同学一定对二进制不陌生,计算机底层的通讯就是二进制嘛!二进制由0和1组成,那么怎么快速的对一个十进制数转换成二进制数呢?

最古老的方法大家还记得怎么转换吗?比如35这个十进制数?

二进制十进制转换史上最牛逼算法!!_第1张图片

将这个数除以2,等于17余1,然后将17再除以2,等于8余1…直到不能再被2整除,然后将余数从后往前的顺序写出来就是二进制数100011。

这个是我们上初中时候老师教的,但是太麻烦了,下面我教大家一种新的算法:

学习这个新算法的时候我们首先要了解下 2 n 2^n 2n问题:

2 8 2^8 28 2 7 2^7 27 2 6 2^6 26 2 5 2^5 25 2 4 2^4 24 2 3 2^3 23 2 2 2^2 22 2 1 2^1 21 2 0 2^0 20

…256、128、64、32、16、8、4、2、1

第一步,我们先把 2 n 2^n 2n倒着写出来,写多少呢?根据你要算的这个十进制数的大小,比如35,那你就从32开始往前写就行了:

32、16、8、4、2、1

从上面这些数里,我们想算十进制的35,它等于32+2+1,那我就在32、2、1下面标1,其余的标0:

二进制十进制转换史上最牛逼算法!!_第2张图片

通过上图,二进制就是100011。简单不?如果你看懂了,你就试试其他的数吧。

二进制转十进制

十进制转二进制我们刚才学会了,那么二进制怎么转十进制呢?是不是有点懵?

假如有一个二进制数100011,怎么转换呢,非常简单!还是先把 2 n 2^n 2n写下来,写多少?根据二进制的位数,100011是6位,那我就从后往前数6位写下来:

二进制十进制转换史上最牛逼算法!!_第3张图片

然后把这个二进制数从前往后依次写在十进制数上:

二进制十进制转换史上最牛逼算法!!_第4张图片

最后把上标为1的加在一起:

32 + 2 + 1 = 35

是不是很简单?只要你记住这几个数( 2 n 2^n 2n)你就可以快速的十进制二进制互转。那有的同学问了,如果十进制数是999999999转换二进制是多少?呵呵哒!这么大的数你用计算器!你知道怎么算就行了,有计算器呢

二进制十进制转换史上最牛逼算法!!_第5张图片

你可能感兴趣的:(算法,入门,算法)