四种进制对比

进制底数字符集代码前缀典型用途
二进制20-10b位运算、掩码、底层编程
八进制80-70o0Unix文件权限(755、644)
十进制100-9人类日常使用
十六进制160-9,A-F0x颜色值、内存地址、位掩码

二进制 ↔ 十六进制 快捷转换

这是最常用的快捷方式:每4位二进制对应1位十六进制。

二进制      十六进制
0000   =   0
0001   =   1
0010   =   2
0011   =   3
0100   =   4
0101   =   5
0110   =   6
0111   =   7
1000   =   8
1001   =   9
1010   =   A
1011   =   B
1100   =   C
1101   =   D
1110   =   E
1111   =   F

示例:1101 01100xD6。记住这个表,进制转换可以心算。

编程中的实际应用

颜色值

#FF5733 = RGB(255, 87, 51)。每两位十六进制数对应一个颜色通道(红/绿/蓝)。

Unix 文件权限

chmod 755 file:7=111(读+写+执行),5=101(读+执行)。第一位7是所有者权限,第二位5是组权限,第三位5是其他人权限。

位掩码

0xFF = 二进制11111111,用来截取低8位。x & 0xFF 的结果是x的低8位,高位被清零。

// 权限位示例
const READ    = 0b100;  // 4
const WRITE   = 0b010;  // 2
const EXECUTE = 0b001;  // 1
const perm = READ | WRITE;  // 0b110 = 6

在线转换步骤

  1. 打开 进制转换器
  2. 输入数值(工具会自动识别前缀 0x/0b/0o)。
  3. 立即看到二进制、八进制、十进制、十六进制的等价表示。
  4. 支持批量转换多个数值。

常见问题 FAQ

为什么八进制现在用得少了?

八进制(0-7)每位数只有3位二进制,不能和现代计算机的8位字节对齐。十六进制(每位数4位二进制)更实用。目前八进制主要出现在Unix文件权限里(因为3位二进制正好对应r/w/x三个权限位)。

JavaScript 里怎么表示不同进制?

ES6支持:0xFF(十六进制)、0b1111(二进制)、0o777(八进制)。Number(n).toString(base) 可以把数字转成任意进制的字符串(base 2-36)。