十六进制与二进制转换:程序员必知的进制知识

全面介绍十六进制、二进制、八进制的转换方法和应用场景。掌握进制转换,提升编程能力。

编码转换 2026-05-30 7 分钟

十六进制与二进制转换:程序员必知的进制知识

进制转换是程序员的基本功。十六进制、二进制在内存表示、颜色编码、网络协议等领域广泛使用。

常用进制

进制 基数 前缀 示例
二进制 2 0b 0b1010
八进制 8 0o 0o12
十进制 10 10
十六进制 16 0x 0x0A

进制转换方法

十进制 → 二进制

除 2 取余法:

10 ÷ 2 = 5 余 0
5 ÷ 2 = 2 余 1
2 ÷ 2 = 1 余 0
1 ÷ 2 = 0 余 1
→ 1010

十进制 → 十六进制

除 16 取余法:

255 ÷ 16 = 15 余 15 (F)
15 ÷ 16 = 0 余 15 (F)
→ 0xFF

二进制 → 十六进制

每 4 位二进制对应 1 位十六进制:

1010 1100 → AC

编程语言中的进制表示

JavaScript

// 不同进制的数字
0b1010  // 二进制 = 10
0o12    // 八进制 = 10
0x0A    // 十六进制 = 10

// 转换为不同进制字符串
(255).toString(2)   // "11111111"
(255).toString(8)   // "377"
(255).toString(16)  // "ff"

// 从不同进制字符串解析
parseInt("ff", 16)  // 255
parseInt("1010", 2) // 10

Java

// 不同进制的数字
int bin = 0b1010;   // 二进制
int oct = 012;      // 八进制
int hex = 0x0A;     // 十六进制

// 转换为不同进制字符串
Integer.toBinaryString(255)   // "11111111"
Integer.toOctalString(255)    // "377"
Integer.toHexString(255)      // "ff"

// 从不同进制字符串解析
Integer.parseInt("ff", 16)    // 255
Integer.parseInt("1010", 2)   // 10

十六进制的应用场景

1. 颜色编码

/* RGB 颜色 */
color: #FF5733;     /* 十六进制 */
color: rgb(255, 87, 51);  /* 十进制 */

2. 内存地址

0x00400000  // 程序入口地址
0x7FFF FFFF // 栈顶地址

3. 哈希值

MD5: d41d8cd98f00b204e9800998ecf8427e
SHA-256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

4. 网络协议

MAC 地址: 00:1A:2B:3C:4D:5E
IPv6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334

5. 文件格式

PNG 文件头: 89 50 4E 47
ZIP 文件头: 50 4B 03 04

位运算

十六进制常用于位运算:

// 位与
0xFF & 0x0F  // 0x0F

// 位或
0xF0 | 0x0F  // 0xFF

// 位异或
0xFF ^ 0x0F  // 0xF0

// 左移
0x01 << 4    // 0x10

// 右移
0x10 >> 2    // 0x04

在线工具

使用 jsjson.com 十六进制工具 进行进制转换:

  • 十进制 ↔ 十六进制
  • 二进制 ↔ 十六进制
  • 批量转换

总结

十六进制和二进制是程序员的必备知识。掌握进制转换,理解位运算,可以更好地理解计算机底层原理。

📚 相关文章