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

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

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

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

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

目录
相关文章
|
6月前
|
Java C++ Python
试题 基础练习 十六进制转八进制
试题 基础练习 十六进制转八进制
52 0
|
C语言
C语言之十进制转化为十六进制
C语言之十进制转化为十六进制
151 0
|
5月前
用人话教会你各个进制的意思和进制间的转化!!!
用人话教会你各个进制的意思和进制间的转化!!!
|
6月前
|
存储 安全 程序员
|
6月前
|
存储 C++
【软件设计师备考 专题 】数制基础:二进制、十进制和十六进制的理解与转换
【软件设计师备考 专题 】数制基础:二进制、十进制和十六进制的理解与转换
82 1
|
6月前
|
存储 C语言
十进制转二进制,C语言的必备技能
十进制转二进制,C语言的必备技能
二进制,八进制,十进制,十六进制的相互转换【简单易懂】(含代码模板)
二进制,八进制,十进制,十六进制的相互转换【简单易懂】(含代码模板)
272 0
二进制,八进制,十进制,十六进制的相互转换【简单易懂】(含代码模板)
蓝桥杯基础训练】十六进制转八进制
给定n个十六进制正整数,输出它们对应的八进制数。
75 0
进制转换(二进制,八进制,十进制,十六进制)涵盖整数与小数部分,内容的图片全为手写【详细图解】
进制转换(二进制,八进制,十进制,十六进制)涵盖整数与小数部分,内容的图片全为手写【详细图解】
|
开发者
傻傻分不清的进制与进制转换
傻傻分不清的进制与进制转换
396 0
傻傻分不清的进制与进制转换