为什么地磅的读数有进制么_10分钟带你了解什么是二进制

018b6b40fb916e0881e18cf4797f0dc4.png
世界上有10种人:一种是懂得二进制的,另一种是不懂二进制的

上面这是流传在程序员之间很久的一个冷笑话。

是不是get不到梗的笑点?

没有关系,看完本文,你再来看这句话就会会心一笑。

3b9cf88328fe95cc8358f015ed27a552.png

回到过去

让我们假设你回到了初中,这时候你情窦初开。喜欢上了临街的小哥哥(小姐姐),你们俩家的窗户面对面。放寒假的时候,你们约好了某天晚上八点偷偷溜出来约会。但是不能让父母知道,所以你们不能通过打电话方式来通知对方,今晚自己是否能顺利溜出来。为了不让对方白等,你们不得不约定一种新的通信方式。

这种新的通信方式要满足:

  • 安静--不能让父母听到,能悄无声息自然是最好了
  • 易懂--对方看到后能立马知道你要表达的信息

因为住的很近,可以从窗户相互看到对方家里,聪明的你立马想到可以用屋子里吊灯的灯光来进行通信。

你们约定到了八点钟

如果我屋子里的灯亮着,代表我可以顺利溜出去

53eeab3fa63306e34f73a065e22c726e.png

如果我屋子里的灯不亮,代表我无法顺利溜出去

0ea843fac25e1f15681813482059d431.png

现在你们就可以用屋子里的灯开关,来表达两种状态
开:能出来
关:不能出来

你们可以悄无声息给对方传达信息,这太完美了!

新的问题

不过过了一段时间你们发现了新问题,有时候,8点钟恰好有事情,可能要推迟半小时才能溜出来。有时候,8点钟事情比较多,可能要推迟1小时才能出来。

现在你们有四种信息要传递

  • 今晚8点钟准时出来
  • 今晚不能出来
  • 今晚8点30能出来
  • 今晚9点能出来

但是一盏灯的开关只能表示两种状态,怎么办才好呢?

聪明的你立马想到,可以再加一盏灯啊!你把书桌上的台灯放到窗前
并且更新了之前的通信方式

  • 台灯关着,吊灯关着--今晚没戏,出不来了

1d40d6921e119d735a29daedc5269b58.png

台灯关着,吊灯开着--今晚8点,不见不散

e0dd756af03869819b40664482320368.png

台灯开着,吊灯关着--推迟半小时,今晚八点半才能溜出来

f06f48a0cfe453dd0aa84ab026cec40f.png

台灯开着,吊灯开着--推迟1小时,今晚9点才能溜出来

d36d00962836f5045da967491a690eef.png

哇哦,再一次用自己的聪明才智解决了这个问题。
现在你用两盏灯,来表达四种状态

一些思考

让我们用符号来重新表述下
我们用数字0表示灯灭
数字1表示灯亮

一盏灯的情况

  • 0 ==> 今晚八点准时出来
  • 1 ==> 今晚八点不能出来

两盏灯的情况

  • 0 0 ==> 今晚没戏,出不来了
  • 0 1 ==> 今晚8点,不见不散
  • 1 0 ==> 推迟半小时,今晚八点半才能溜出来
  • 1 1 ==> 推迟1小时,今晚9点才能溜出来

让我们再来简化一下箭头右边,我们用数字0,1,2,3 分别来代表今晚约会的4种状态

  • 0: 今晚没戏,出不来了
  • 1: 今晚8点,不见不散
  • 2: 推迟半小时,今晚八点半才能溜出来
  • 3: 推迟1小时,今晚9点才能溜出来

现在我们可以把两边都用数字来简化了

  • 00 ==> 0
  • 01 ==> 1
  • 10 ==> 2
  • 11 ==> 3

如果我们再加一盏灯,能表示多少种状态呢?

  • 000 ==> 0
  • 001 ==> 1
  • 010 ==> 2
  • 011 ==> 3
  • 100 ==> 4
  • 101 ==> 5
  • 110 ==> 6
  • 111 ==> 7

一共是8种

好了,现在我告诉你,已经开始使用二进制了!

没错!

左边的是二进制,右边就是相对应的十进制

比如说二进制的 111 代表的就是我们常用十进制的 7

为什么呢?

虽然你可能不太相信,但是确实你已经开始使用二进制了。

那么二进制到底是怎么回事呢?

我们日常生活中所用的都是十进制,也就是满10进1
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
当要数10时,就要进1位,也就是十位数写1个位数写0
就是10啦

二进制就是满2进1,
0
1
10
11
10
100
当要数2的时候,就要进1位了,下一位写1,当前位变成0
也就是10

二进制转十进制

那么我们看到一个二进制的数,如何知道它表示的10进制的数是几呢?
我们还是想一下十进制的101,我们可以很轻松的读出来这是 一百零一
但是我们怎么知道 一零一 就是 一百一十一呢?
因为我们知道
从右边向左数
第一位是个位,这个位的数字是几就是几
第二位是十位,这个位的数字是几就表示几十
第二位是百位,这个位的数字是几就表示几百

e7e8590413d07dcfeadeaecfdfcb483b.png

所以101 = 1x100 + 0x10 + 1x1
一个一百 + 零个10 + 一个一

我们这里引入一个新名词权重(Weight) 来表示每一位的实际意义
个位--权重 1 = 10^0 十的零次方
十位--权重 10 = 10^1 十的一次方
百位--权重 100 = 10x10 = 10^2 十的二次方
千位--权重 1000= 10x10x10 = 10^3 十的三次方
可以看到从右边向左 权重依次扩大10倍

所以我们其实可以到这样的结论

其实就是每一位的数字乘以此位的权重,然后相加101 = 1x10x10 + 0*10 + 1x1

用次方表示101 = 1x(10^2) + 0x(10^1) + 1x(10^0) = 1x100 + 0x10 + 1 =101

OK我们如何表示知道二进制具体的大小,只需要套用这个公式即可
那么首先我们要知道二进制每一位的权重是多少
既然十进制每一位权重都是10的次方数
那么二进制的每一位权重自然是2的次方数了

从右向左数
第一位 1 = 2^0 二的零次方
第二位 2 = 2^1 二的一次方
第三位 4 = 2x2= 2^2 二的二次方
那么回到我们之前的问题,
二进制的101,我们从上文的状态表可以知道

  • 000 ==> 0
  • 001 ==> 1
  • 010 ==> 2
  • 011 ==> 3
  • 100 ==> 4
  • 101 ==> 5
  • 110 ==> 6
  • 111 ==> 7

代表的是5
转换过程101 = 1x(2^2)+0x2^1 + 1x(2^0) = 1x4+0x2+1=5
怎么样,很简单吧!

get 这个梗

再回到我们最初那个冷笑话

世界上有10种人:一种是懂得二进制的,另一种是不懂二进制的

这里的10其实是二进制的,转换成十进制就是 10=1x(2^1)+0x(2^0)=1x2+0x1=2
其实就是十进制的2

会心一笑了吗?

093c8fabb0dc8c8f3773ead96f7885ad.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值