什么是进制转换
进制转换(Number Base Conversion)是在不同数字表示系统之间转换数值的过程。计算机科学中常用的进制有:
| 进制 | 基数 | 数字字符 | 常见用途 |
|------|------|---------|---------|
| 二进制(Binary) | 2 | 0, 1 | 计算机底层、位运算 |
| 八进制(Octal) | 8 | 0-7 | Unix 文件权限(chmod 755) |
| 十进制(Decimal) | 10 | 0-9 | 人类日常计数 |
| 十六进制(Hexadecimal) | 16 | 0-9, A-F | 内存地址、颜色代码、哈希值 |
为什么需要进制转换
- 调试底层代码:查看内存地址、字节数据需要十六进制
- 位运算:位掩码、位移操作需要二进制思维
- 颜色处理:CSS 颜色用十六进制(
#FF5733) - 网络配置:子网掩码涉及二进制和十进制转换
- 文件权限:Linux 权限用八进制表示(
chmod 755) - 编码调试:Base64、URL 编码的底层涉及十六进制
进制转换方法
手动转换技巧
十进制 → 二进制(除 2 取余法):
13 ÷ 2 = 6 ... 1
6 ÷ 2 = 3 ... 0
3 ÷ 2 = 1 ... 1
1 ÷ 2 = 0 ... 1
结果:1101
十进制 → 十六进制(除 16 取余法):
255 ÷ 16 = 15 ... 15 (F)
15 ÷ 16 = 0 ... 15 (F)
结果:FF
编程语言中的进制转换
JavaScript / TypeScript:
const num = 255;
num.toString(2) // "11111111"(二进制)
num.toString(8) // "377"(八进制)
num.toString(10) // "255"(十进制)
num.toString(16) // "ff"(十六进制)
// 字符串 → 数字
parseInt("ff", 16) // 255
parseInt("11111111", 2) // 255
Python:
num = 255
bin(num) # "0b11111111"
oct(num) # "0o377"
hex(num) # "0xff"
# 字符串 → 数字
int("ff", 16) # 255
int("11111111", 2) # 255
Go:
import "strconv"
num := 255
strconv.FormatInt(int64(num), 2) // "11111111"
strconv.FormatInt(int64(num), 8) // "377"
strconv.FormatInt(int64(num), 16) // "ff"
// 字符串 → 数字
strconv.ParseInt("ff", 16, 64) // 255
strconv.ParseInt("11111111", 2, 64) // 255
如何使用在线进制转换器
使用 DevToolkit Pro 的 进制转换器:
- 输入任意进制的数值
- 选择输入进制(2/8/10/16)
- 工具自动显示所有进制的转换结果
- 一键复制所需格式
常见进制对照表
| 十进制 | 二进制 | 八进制 | 十六进制 | |--------|--------|--------|---------| | 0 | 0000 | 0 | 0 | | 1 | 0001 | 1 | 1 | | 8 | 1000 | 10 | 8 | | 10 | 1010 | 12 | A | | 16 | 10000 | 20 | 10 | | 64 | 1000000 | 100 | 40 | | 128 | 10000000 | 200 | 80 | | 255 | 11111111 | 377 | FF |
FAQ
为什么程序员偏爱十六进制?
十六进制是二进制的"人类友好"缩写。1 位十六进制 = 4 位二进制,所以 0xFF 就是 11111111。十六进制在表示字节数据、内存地址时比十进制更直观。
八进制还有什么用?
主要用于 Linux 文件权限。chmod 755 中的 755 就是八进制:7=rwx,5=r-x。也用于某些编程语言的转义字符(\012 = 换行符)。
二进制如何快速转十六进制?
每 4 位二进制对应 1 位十六进制。从右往左分组:1111 1111 → F F → FF。这是计算机内部的直接映射。
本文由 DevToolkit Pro 提供。更多开发者工具请访问 首页。