十六进制、二进制、八进制到底差在哪?程序员每天在用的进制完整解析

你打开 Photoshop,颜色面板显示 #3A7BD5;你在终端机输入 chmod 644 config.php;你阅读代码,看到 0xFF0b1010。这些数字背后有同一个概念:进制(numeral system)。理解进制不只是数学课的事,它是程序员日常工作的底层语言。

一、进制是什么?从十进制说起

我们平常用的数字系统是十进制(Decimal,Base-10),每个位置的值是 10 的次方。电脑的硬件电路只有"有电"和"没电"两种状态,所以电脑用二进制(Binary,Base-2),每个位置只有 0 和 1。其他进制(八进制、十六进制)则是从二进制衍生出来的,为了让人类更容易读写电脑数据而存在。

快速转换:使用进制转换工具可以在十进制、二进制、八进制、十六进制之间即时互转,适合开发调试时快速查询。

二、二进制(Binary):电脑说的语言

二进制只有 0 和 1,每一个位称为一个位元(bit),8 个位元组成一个字节(byte)。常见应用:位元运算(AND、OR、XOR)、网络子网掩码、权限标志位。

三、八进制(Octal):Linux 文件权限的秘密

八进制(Base-8)每个位置使用 0–7,最常见的场景是 Unix/Linux 文件权限chmod 755 表示:擁有者 rwx(7),群组 r-x(5),其他人 r-x(5)。每个数字是读(4)+写(2)+执行(1)的加总。

四、十六进制(Hexadecimal):最常出现的进制

十六进制(Base-16)使用 0–9 和 A–F,一个十六进制字符代表 4 个位元。常见场景:

  • 网页色码#3A7BD5 = rgb(58, 123, 213)
  • 内存地址0x7ffd5a20
  • 哈希值:MD5、SHA256 都是十六进制字符串
  • URL 百分比编码%20(空格)、%E4%B8%AD(中)
色码转换:色码转换工具支持 HEX、RGB、HSL 互转,适合设计师快速确认色码对应的实际颜色。

五、十六进制 ↔ 二进制快速转换

每个十六进制字符恰好对应 4 个位元,可以直接映射不需计算。例如:0xFF = 1111 1111 = 255(十进制)。

URL 编解码:URL 编解码工具可以自动处理百分比编码转换,适合处理含中文或特殊符号的网址。

总结

  • 二进制:电脑底层语言,位元运算、网络掩码、颜色通道
  • 八进制:主要用在 Unix 文件权限(chmod 755、644)
  • 十六进制:最常见,色码、内存地址、哈希值、URL 编码
  • 十六进制 ↔ 二进制转换最简单:每个 Hex 字符 = 4 个位元