前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一日一技:装逼技能,口算二进制转八进制和十六进制

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

作者头像
青南
发布2019-01-23 17:39:26
1.5K0
发布2019-01-23 17:39:26
举报
文章被收录于专栏:未闻Code

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

例如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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-01-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 未闻Code 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 二进制与八进制的互相转换
  • 二进制与十六进制的互相转换
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档