跳至主要內容

1248转换法:快捷心转二进制

sharebravery大约 3 分钟

1248转换法:快捷心转二进制

某日,小坤坤顶着狂风暴雨出门面试,坐了地铁,转了共享单车,摔了一跤,走过马路,跨过人行天桥,一路又唱又跳终于到达面试地点,见到了面试官:

面试官:“1的二进制是多少?”

小坤坤:“01”

面试官:“2呢?”

小坤坤:“10”(坤:So easy)

面试官:“13的二进制是多少?”

小坤坤:“这个需要算一下,平时不用” 说完掏出纸笔进行除二法运算

小坤坤顶着面试官灼热的目光一通写画后:“是1101”

面试官:“那15呢?”

小坤坤又一通写画道:“是1111”

面试官诧异:“就这还要笔算?合着你只背了10以内的二进制转换是吧?”

小坤坤顿时无言,羞愧离去

我们熟知的十进制转二进制的方法为除二法,需要列式计算,极为不便。这里介绍一种便于心算的方法,让面试官问到你不用再掏出草稿纸来列式计算。

二进制转十进制

先来点开胃小菜:

  • 110
  • 111
  • 1010

快速写出这三个数的十进制数字,不是死记硬背哦

十进制数字分别为6、7、10,怎么快捷算出来的呢,背后的指导理论是什么,观察下面的表格

8421
110

110,以0为假,1为真。为真的位的数字为4、2,加起来为6,这就是110的十进制。

代入1010,根据1248理论画出表格模型:

8421
1010

为真的位数字为8和2,加起来是10。怎么样,根据1248转换法十进制转二进制是不是很简单,你可能会问,要是101010怎么办

依此类推1、2、4、8、16、32、64、128......,为2的幂次方递进,如下

32168421
101010

为1的位的数字相加,即32 + 8 + 2 = 42,101010的十进制为42

十进制转二进制

计算下面三个数的二进制:

  • 9
  • 23
  • 77

还是使用1248转换法的理论来进行操作,对数字9进行拆解 9 = 8 + 1,列出1248表格

8421
1001

则"8"位和"1"位为真,则为1,余者补位0,则最终得到1001,这就是9的二进制。

对23拆解,23 = 16 + 7 = 16 + 4 + 2 + 1,列出1248表格:

168421
10111

观察得知,23的二进制为10111

同理,77 = 64 + 13 = 64 + 8 + 4 + 1 ,列出1248表格:

6432168421
1001101

余位补0,观察可知77的二进制为1001101.

我们以后遇到二进制和十进制互转的题目就不用怕了,也不用顶着面试官灼热的目光拿出草稿纸进行除二法慢慢推算(😇),只要根据1248转换理论心列表格就迎刃而解了。

十进制和十六进制互转

这里顺便提一下十进制转十六进制,方法其实也很简单,但是如果不主动去总结发现很容易就忽略了。

  • 24
  • 36
  • 82

计算这三个数的16进制

24=161+8=>0x18 24 = 16 * 1+ 8 => 0x18

36=162+4=>0x24 36 = 16 *2 + 4 => 0x24

82=165+2=>0x52 82 = 16 * 5 + 2 => 0x52

观察可知,由16的倍数加上剩余的数字组成16进制数。

十六进制转十进制则为:

0x18=1161+8160=24 0x18 = 1 * 16^1 + 8 * 16^0 = 24

0x24=2161+4160=36 0x24 = 2 * 16^1 + 4 * 16^0 = 36

0x52=5161+2160=82 0x52 = 5*16^1 + 2 * 16^0 = 82


END