1248转换法:快捷心转二进制
1248转换法:快捷心转二进制
某日,小坤坤顶着狂风暴雨出门面试,坐了地铁,转了共享单车,摔了一跤,走过马路,跨过人行天桥,一路又唱又跳终于到达面试地点,见到了面试官:
面试官:“1的二进制是多少?”
小坤坤:“01”
面试官:“2呢?”
小坤坤:“10”(坤:So easy)
面试官:“13的二进制是多少?”
小坤坤:“这个需要算一下,平时不用” 说完掏出纸笔进行除二法运算
小坤坤顶着面试官灼热的目光一通写画后:“是1101”
面试官:“那15呢?”
小坤坤又一通写画道:“是1111”
面试官诧异:“就这还要笔算?合着你只背了10以内的二进制转换是吧?”
小坤坤顿时无言,羞愧离去
我们熟知的十进制转二进制的方法为除二法,需要列式计算,极为不便。这里介绍一种便于心算的方法,让面试官问到你不用再掏出草稿纸来列式计算。
二进制转十进制
先来点开胃小菜:
- 110
- 111
- 1010
快速写出这三个数的十进制数字,不是死记硬背哦
十进制数字分别为6、7、10,怎么快捷算出来的呢,背后的指导理论是什么,观察下面的表格
8 | 4 | 2 | 1 |
---|---|---|---|
1 | 1 | 0 |
110,以0为假,1为真。为真的位的数字为4、2,加起来为6
,这就是110的十进制。
代入1010,根据1248理论画出表格模型:
8 | 4 | 2 | 1 |
---|---|---|---|
1 | 0 | 1 | 0 |
为真的位数字为8和2,加起来是10
。怎么样,根据1248转换法十进制转二进制是不是很简单,你可能会问,要是101010怎么办
依此类推1、2、4、8、16、32、64、128......,为2的幂次方递进,如下
32 | 16 | 8 | 4 | 2 | 1 |
---|---|---|---|---|---|
1 | 0 | 1 | 0 | 1 | 0 |
为1的位的数字相加,即32 + 8 + 2 = 42,101010的十进制为42
。
十进制转二进制
计算下面三个数的二进制:
- 9
- 23
- 77
还是使用1248转换法的理论来进行操作,对数字9进行拆解 9 = 8 + 1
,列出1248表格
8 | 4 | 2 | 1 |
---|---|---|---|
1 | 0 | 0 | 1 |
则"8"位和"1"位为真,则为1,余者补位0,则最终得到1001
,这就是9的二进制。
对23拆解,23 = 16 + 7 = 16 + 4 + 2 + 1
,列出1248表格:
16 | 8 | 4 | 2 | 1 |
---|---|---|---|---|
1 | 0 | 1 | 1 | 1 |
观察得知,23的二进制为10111
同理,77 = 64 + 13 = 64 + 8 + 4 + 1
,列出1248表格:
64 | 32 | 16 | 8 | 4 | 2 | 1 |
---|---|---|---|---|---|---|
1 | 0 | 0 | 1 | 1 | 0 | 1 |
余位补0,观察可知77的二进制为1001101
.
我们以后遇到二进制和十进制互转的题目就不用怕了,也不用顶着面试官灼热的目光拿出草稿纸进行除二法慢慢推算(😇),只要根据1248转换理论心列表格就迎刃而解了。
十进制和十六进制互转
这里顺便提一下十进制转十六进制,方法其实也很简单,但是如果不主动去总结发现很容易就忽略了。
- 24
- 36
- 82
计算这三个数的16进制
观察可知,由16的倍数加上剩余的数字组成16进制数。
十六进制转十进制则为:
END