为什么需要进制转换?
在计算机里,数据的底层表示是二进制,而人类习惯使用十进制。程序员和学生经常要在二进制、十进制、十六进制之间切换:
- 二进制(base-2):计算机底层表示
- 十进制(base-10):日常数字系统
- 十六进制(base-16):简洁表示二进制,常见于地址、颜色值、内存调试
二进制转十进制
例子 1:1011₂ → ?₁₀
步骤:
-
从右往左标注权值:1, 2, 4, 8 …
-
逐位乘以权值再求和:
1
1×8 + 0×4 + 1×2 + 1×1 = 8 + 0 + 2 + 1 = 11
-
所以
1011₂ = 11₁₀
例子 2:110010₂ → ?₁₀
1 | = 1×32 + 1×16 + 0×8 + 0×4 + 1×2 + 0×1 |
十进制转二进制
例子 1:25₁₀ → ?₂
步骤:连续除以 2,记录余数,逆序排列。
1 | 25 ÷ 2 = 12 余 1 |
所以 25₁₀ = 11001₂
十进制转十六进制
例子 1:255₁₀ → ?₁₆
-
除以 16,记录余数:
1
2255 ÷ 16 = 15 余 15
15 ÷ 16 = 0 余 15 -
余数 15 用十六进制字母 F 表示
-
结果:
FF₁₆
例子 2:1023₁₀ → ?₁₆
1 | 1023 ÷ 16 = 63 余 15 (F) |
十六进制转十进制
例子 1:1A₁₆ → ?₁₀
1 | = 1×16 + A(10)×1 |
例子 2:2F₁₆ → ?₁₀
1 | = 2×16 + F(15)×1 |
二进制转十六进制
方法:每 4 位二进制对应 1 位十六进制。
例子 1:10111100₂ → ?₁₆
- 从右起分组:
1011 1100
- 转换:
1011₂ = B₁₆
,1100₂ = C₁₆
- 结果:
BC₁₆
例子 2:11111111₂ → ?₁₆
1 | 1111 = F |
十六进制转二进制
方法:每个十六进制位直接展开为 4 位二进制。
例子 1:2D₁₆ → ?₂
1 | 2 → 0010 |
例子 2:7F₁₆ → ?₂
1 | 7 → 0111 |
FAQ:常见问题
Q: 为什么程序员常用十六进制表示二进制?
A: 因为 1 个十六进制位正好对应 4 个二进制位,表示更简洁,调试/存储更直观。
Q: 自定义进制支持多少?
A: JavaScript 的 parseInt
和 toString
支持 2–36 进制,更高进制需要自定义字符集。
Q: 大数怎么办?
A: 现代语言支持 BigInt
,可处理任意长度的二进制/十六进制串。
总结
本文整理了常见的 二进制 ↔ 十进制 ↔ 十六进制 的互转例子,涵盖了手算步骤和直观方法。
无论是学习计算机原理,还是写代码处理数据,理解这些转换都非常重要。
如果需要快速计算,可以使用:
在线进制转换器
json.itzhai.com
支持二进制/十进制/十六进制/任意进制,大数 BigInt,实时联动。