欢迎光临散文网 会员登陆 & 注册

十进制转二进制,只要记住一个等比数列就好

2023-04-01 22:12 作者:yidadakimasi  | 我要投稿

对于没接触过二进制的同学来说,进制转换问题确实有一点非脑筋。不过没关系,我们先从熟悉的十进制来学习。

在十进制中,我们讲究个位,十位,百位,千位等等,这里的个十白千实际上就是权重的意思。每个位置的权重是不变的,变的只是这个位置上填充的数字。

口口口

这里有一个三位数,最假设给三个方框填充的数字从左到右是279,那么你自然就读出这个数字,是二百七十九,你有没有发现,你填充的是2,最终却有一个二百,你填充的是七,最终却有一个七十,你填充的是九,最终有一个九。

为什么?

因为每个方框都隐含着一个权重,你可以在这个方框里面填充0~9中的任意一个数字,那么最终得到的数字,就是每个方框里面的数字乘以每个方框对应的权重,再把这些结果加起来。

最左边的方框的权重是100,即10的二次方,中间的方框的权重是10,即10的一次方,最右边的方框的权重是10的零次方,即1,所以最终的结果就是2*100+7*10+9*1=279。

我画了一张十进制的权重表

十进制权重表

可以看到权重从左往右是一次降低的,而且是一个等比数列,公比是10。

你只要在方框里面填充数字,你就能得到你想要的任何数字。


再来看二进制。

有了十进制的基础,那么二进制就很好理解了。因为是同样的道理。

十进制里面每个方框可用的数字是0到9,每个方框的权重是10的次方。那么二进制里面每个方框可用的数字是0和1,每个方框的权重是2的次方。

我画了一张二进制的权重表

二进制权重表

可以看到每个方框的权重都是2的次方,而且这些权重从左到右是一个以2为公比的等比数列。

而且,每个方框的权重都转换成了对应的十进制数字,2的四次方正好是16,2的三次方正好是8,2的二次方正好是4。这就是十进制转二进制的关键。

有了这张权重表我们就可以把任何十进制数转换为二进制。

举个例子。

现在把176这个十进制数字转化为二进制?

先把二进制权重表列出来

256 128 64 32 16 8 4 2 1 0.5 0.25

从左往右看,第一个权重是256,这个位置只能填充0,如果是1的话,那么256*1,再加上其它的值就超过176这个数字了。

第二个权重是128,128比176要小,所以这个位置要填充1,然后还剩下176-128=48

第三个权重是64,64比48要大,所以这个位置是0。

第四个权重是32,32比48要小,所以这个位置是1,然后还剩下48-32=16

第五个权重是16,正好我们就需要16,剩下16-16=0

剩下的整数位置的权重全部填充为0即可。

那么最后的结果就是0101 0000 0

再来看一个小数,0.5625,把它转化为二进制是多少呢?

列出权重

8 4 2 1 0.5 0.25 0.125 0.0625

8这个位置的肯定填充0,因为8大鱼0.5625

4 2 1 这几个位置是一样道理,都填充0

看0.5这个位置,0.5比0.5625要小,那么0.5这个位置要填充1,剩下0.5625-0.5=0.0625

看0.25这个位置,0.25比0.0625要大,那么这个位置要填充0。

看0.125这个位置,0.125比0.0625要大,所以这个位置要填充0,剩下0.0625

看0.0625这个位置,这正好就是我们要的数字,所以这个位置要填充1.

所以最终的结果就是0000 1001

























十进制转二进制,只要记住一个等比数列就好的评论 (共 条)

分享到微博请遵守国家法律