一日一技:装逼技能,口算二进制转八进制和十六进制_进制

大家或多或少都听说过如何把一个十进制数转换为二进制数。但是如果我给你一个数字,让你口算转换为二进制数,你肯定会觉得我这是在为难你胖虎。

例如8769转换为二进制是多少?答案是10001001000001。如果你口算做除法,可能根本记不住这么多位。

那么今天告诉你一个技能,如何口算实现:

八进制<->二进制<->十六进制的转换。例如:

二进制 八进制 十六进制
101110101010110101 565265 2eab5
11101010111011111 352737 1d5df

这三个进制之间的转换,初看起来毫无规律,如何口算?为了实现口算,你需要记住16个对应关系:

二进制 八进制 十六进制
0 0 0
1 1 1
10 2 2
11 3 3
100 4 4
101 5 5
110 6 6
111 7 7
1000 10 8
1001 11 9
1010 12 a
1011 13 b
1100 14 c
1101 15 d
1110 16 e
1111 17 f

这16个组合非常好记,你搬着手指也能数出来。

二进制与八进制的互相转换

现在,给你一个二进制数: 101110101010110101,如何把它转成八进制?

方法:从右向左,每3位一组把二进制数分开,再把每一组转成8进制数:

  1. 每三位一组进行分组: 101110101010110101

  2. 把每一组根据背诵的转换关系转换为八进制数: 565265

  3. 把每一组数字中间的空格去掉: 565265

把这个过程倒过来,就是八进制转二进制的过程:

  1. 把八进制数352737每一位拆分开: 352737

  2. 把每一位转换为3位二进制数,不足3位的高位补0: 011101010111011111

  3. 去掉中间的空格: 011101010111011111

  4. 最左边如果是0开头,把0去掉: 11101010111011111

二进制与十六进制的互相转换

现在,给你一个二进制数: 101110101010110101,如何把它转成十六进制?

方法:从右向左,每4位一组把二进制数分开,再把每一组转成十六进制数:

  1. 每四位一组进行分组: 101110101010110101

  2. 把每一组根据背诵的转换关系转换为十六进制数: 2e a b5

  3. 把每一组数字中间的空格去掉: 2eab5

把这个过程倒过来,就是转二进制的过程:

  1. 把1d5df每一位拆分开: 1d5d f

  2. 把每一位转换为4位二进制数,不足4位的高位补0: 00011101010111011111

  3. 去掉中间的空格: 00011101010111011111

  4. 最左边如果是0开头,把0去掉: 11101010111011111

好了,拿去考试或者装逼吧。

一日一技:装逼技能,口算二进制转八进制和十六进制_十六进制_02