代码改变世界
[登录 · 注册]
  • 简单讲讲二进制与十进制的转换
  • 简单讲讲二进制与十进制的转换

    本文写于 2020 年 9 月 12 日

    很多人觉得二进制很奇妙,很难转换,但其实没那么夸张。

    首先看一个简单的十进制数:123

    对于 123 而言,是 100+20+3 的结果,也就是 1*100+2*10+3*1

    再进一步拆分成 10^n(十的 n 次方)后就可以表示为 1*10^2+2*10^1+3*10^0

    这个时候我们发现这里其实是存在某种规则的。

    列个表看看:

    10^2 10^1 10^0
    0 0 0

    那么这是十进制,换成二进制的话,会不会是下面这样呢?

    2^2 2^1 2^0
    0 0 0

    这也就意味着,100、10、1 变成了 4、2、1。当我们继续向后推进,二进制就会变成 8、16……而不是十进制的 1000、10000……

    这个表有啥用呢?

    我们来看几个简单的例子,十进制的 2,在二进制中是就是 10,这点我们非常清楚。

    我们将 10 放入表中:

    2^2 2^1 2^0
    0 1 0

    1*2^1+0*2^0,诶?!这不就是 2 吗?

    所以我们现在学会了二进制转十进制的方法,就是将二进制的每一位,乘上二的位数减一次方后相加

    十进制转二进制相对而言要更麻烦一点,也更难想——我们需要解出一个公式:a*1+b*2+c*4+d*8+e*16…… 这里的 a、b、c……都表示的是 0 或 1。

    例如 50。可以表示为:0*1+1*2+0*4+0*8+1*16+1*32,所以 50 的二进制为 110010。

    13 呢?可以表示为 1*1+0*2+1*4+1*8,即为 1101。

    (完)

  • 上一篇:虚拟 DOM 与 DOM Diff
    下一篇:Git 后续——分支与协作
  • 【推广】 阿里云小站-上云优惠聚集地(新老客户同享)更有每天限时秒杀!
    【推广】 云服务器低至0.95折 1核2G ECS云服务器8.1元/月
    【推广】 阿里云老用户升级四重礼遇享6.5折限时折扣!
  • 原文:https://www.cnblogs.com/xhyccc/p/13656439.html
走看看 - 开发者的网上家园