跳转到主要内容

developer-tools

进制转换详解:二进制、八进制、十进制与十六进制互转指南

robinhood-projects2 分钟阅读

进制转换器

在 2 到 36 之间的任意进制之间转换数字——二进制、八进制、十进制、十六进制等。

使用工具 →

十六进制转换器

在浏览器中将十六进制字符串转换为文本、十进制和二进制——或将文本编码为十六进制。

使用工具 →

二进制转换器

将二进制转换为文本、十进制和十六进制——或将文本编码为二进制——实时输出结果。

使用工具 →

ASCII 转换器

通过字符、十进制、十六进制、二进制或八进制查找 ASCII 码——一次查看所有表示形式。

使用工具 →

进制转换:开发者实用指南

当你看到 CSS 颜色代码 #FF6B6B 时,是否想过那些字母代表什么?或者在调试网络数据包时,看到满屏的 0x 前缀却不知从何下手?这些场景背后都涉及同一个知识点——进制转换(数制转换)。本文将用具体例子,带你搞清楚二进制、八进制、十进制和十六进制之间的关系。

为什么计算机需要不同进制?

人类用十进制(Base 10)计数,原因很简单:我们有十根手指。计算机使用二进制(Base 2),因为晶体管只有两种状态:通(1)和断(0)。十六进制(Base 16,即"十六进制"或"16进制")则是二进制的压缩版——4位二进制可以用1位十六进制表示,大幅缩短了数据的书写长度。八进制(Base 8)在早期 Unix 系统中广泛使用,至今仍出现在文件权限中。

掌握进制转换,你将能够:

  • 读写内存地址和寄存器值
  • 调试网络协议和数据包
  • 理解 CSS 颜色值的构成
  • 读懂 Unix/Linux 的文件权限
  • 解析二进制文件格式和字符编码

核心示例:十进制 42

以数字 42 为例,看它在不同进制下的表示方式:

进制名称表示
10十进制42
2二进制101010
8八进制52
16十六进制2A

二进制(101010): 每位代表 2 的幂次。从右到左:2¹ + 2³ + 2⁵ = 2 + 8 + 32 = 42。

八进制(52): 每位代表 8 的幂次。5×8 + 2×1 = 42。

十六进制(2A): 每位代表 16 的幂次。2×16 + 10×1 = 42。字母 A 代表十进制的 10。

手动转换方法

十进制转二进制

连续除以 2,记录余数,从下往上读:

42 ÷ 2 = 21 余 0
21 ÷ 2 = 10 余 1
10 ÷ 2 =  5 余 0
 5 ÷ 2 =  2 余 1
 2 ÷ 2 =  1 余 0
 1 ÷ 2 =  0 余 1

从下往上读余数:101010

十进制转十六进制

连续除以 16,余数对应十六进制字符(10=A,11=B ... 15=F):

42 ÷ 16 = 2 余 10(即 A)
 2 ÷ 16 = 0 余 2

从下往上读:2A

二进制转十六进制(快捷方法)

将二进制从右向左每 4 位一组,逐组转换:

101010 → 0010 1010
            2    A

结果:2A。这正是十六进制在程序员中流行的原因——它能高效压缩二进制数据。

实战示例一:十六进制表示 IP 地址

网络工程师在抓包分析时,经常看到十六进制格式的 IP 地址。IPv4 地址 192.168.1.1 的十六进制表示如下:

192 → C0
168 → A8
  1 → 01
  1 → 01

十六进制表示:C0A8 0101

这正是 IP 地址在原始数据包和 Wireshark 等网络分析工具中显示的格式。理解这一点,对排查网络故障非常有帮助。

实战示例二:CSS 颜色代码

颜色 #FF6B6B 是一个十六进制三元组,每两位代表一个颜色通道(范围 0–255):

FF → 255(红色 Red)
6B → 107(绿色 Green)
6B → 107(蓝色 Blue)

所以 #FF6B6B 对应 RGB(255, 107, 107),是一种珊瑚红。设计师说"红色通道拉满"就是 FF,"没有蓝色分量"就是 00。十六进制颜色代码本质上就是三个十六进制数连写在一起。

6B 转十进制:6×16 + 11 = 107。

八进制与文件权限

Unix 文件权限如 chmod 755 直接使用八进制:

7 = 111(二进制)→ 读 + 写 + 执行
5 = 101(二进制)→ 读 + 执行(无写入权限)
5 = 101(二进制)→ 读 + 执行(无写入权限)

755 表示:文件所有者拥有全部权限,用户组和其他人只能读取和执行。八进制恰好与三位一组的权限位完美对齐,这不是巧合。

用在线工具快速换算

手动计算适合学习,日常使用中在线工具更高效。推荐使用 FileCrank 的免费工具:

输入 2A,工具会立刻显示:十进制 42、八进制 52、二进制 101010。

常用数值快速对照表

十进制二进制八进制十六进制
0000000
81000108
10101012A
15111117F
16100002010
25511111111377FF

注意:255 的十六进制是 FF,这是单个字节的最大值。因此颜色从 #000000(黑色)到 #FFFFFF(白色)。

小结

进制转换是计算机科学中最基础的技能之一,在调试、读文档、理解数据存储与传输时都会用到。二进制是机器的语言,十六进制是工程师的速记,十进制是人类的习惯。

一旦理解了这些不同进制只是同一个数字的不同写法,在它们之间切换就会变得非常自然。试试 FileCrank 进制转换器,用你自己的数字练习一下吧。