数字进制基础
进制(Number Base)是计数系统的基数,决定了每一位数字有多少种可能的值。计算机科学中最常用的四种进制:
- 二进制(Binary,Base 2):只有 0 和 1,计算机硬件的基础
- 八进制(Octal,Base 8):0–7,Unix 文件权限的表示方式
- 十进制(Decimal,Base 10):0–9,日常计数
- 十六进制(Hexadecimal,Base 16):0–9 加 A–F,内存地址、颜色代码、哈希值
各进制在计算机中的应用
| 进制 | 前缀 | 典型应用 |
| 二进制 | 0b | 位操作、逻辑运算、网络掩码(如 11111111.00000000) |
| 八进制 | 0o | Unix 文件权限(chmod 755)、老式 C 语言字面量 |
| 十进制 | 无 | 日常数学、用户界面显示 |
| 十六进制 | 0x | 内存地址、颜色代码(#FF5733)、哈希值、字节序列 |
进制转换原理
十进制转其他进制
除目标进制取余,余数从下到上排列:
10 (十进制) 转二进制:
10 ÷ 2 = 5 余 0
5 ÷ 2 = 2 余 1
2 ÷ 2 = 1 余 0
1 ÷ 2 = 0 余 1
从下到上读余数 → 1010 (二进制)
255 (十进制) 转十六进制:
255 ÷ 16 = 15 余 15 → F
15 ÷ 16 = 0 余 15 → F
→ FF (十六进制)
其他进制转十进制
每位乘以进制的对应次方后求和:
1010 (二进制) → 十进制:
1×2³ + 0×2² + 1×2¹ + 0×2⁰
= 8 + 0 + 2 + 0 = 10
FF (十六进制) → 十进制:
15×16¹ + 15×16⁰
= 240 + 15 = 255
如何在线转换进制
使用 tool.tl 的进制转换工具:
- 访问 tool.tl/base-converter
- 在任意输入框输入数字(二进制、八进制、十进制或十六进制)
- 其他进制表示自动实时更新
- 支持自定义任意进制(2–36)
编程语言中的进制字面量
# Python
bin_val = 0b1010 # 二进制 → 10
oct_val = 0o17 # 八进制 → 15
hex_val = 0xFF # 十六进制 → 255
bin(255) # → '0b11111111'
oct(255) # → '0o377'
hex(255) # → '0xff'
int('FF', 16) # → 255 (十六进制字符串转十进制)
// JavaScript
(255).toString(2) // → '11111111' (十进制转二进制字符串)
(255).toString(16) // → 'ff'
parseInt('ff', 16) // → 255 (十六进制字符串转十进制)
常见问题
十六进制中 A–F 代表什么?
十六进制(Base 16)需要 16 个符号,0–9 不够用,所以借用字母:A=10、B=11、C=12、D=13、E=14、F=15。因此 0xFF = 15×16 + 15 = 255。不区分大小写,0xff 和 0xFF 相同。
为什么颜色代码用十六进制?
颜色的 RGB 三个通道各占 0–255(1 字节),十六进制用两位(00–FF)恰好表示一个字节,所以 6 位十六进制(如 #FF5733)可以紧凑地表示三个通道。相比十进制的 rgb(255, 87, 51),十六进制 #FF5733 更简洁。
工具是免费的吗?
是的,tool.tl 的进制转换工具完全免费,实时转换,支持 2–36 进制,无需注册。