你打开 Photoshop,颜色面板显示 #3A7BD5;你在终端机输入 chmod 644 config.php;你阅读代码,看到 0xFF、0b1010。这些数字背后有同一个概念:进制(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 个位元