吃透四大进制:二进制、八进制、十进制、十六进制(概念+实战转换)

吃透四大进制:二进制、八进制、十进制、十六进制(概念 + 实战转换)

计算机世界里最常用的四种进制分别是:

  • 二进制 (Binary) → 基数 2
  • 八进制 (Octal) → 基数 8
  • 十进制 (Decimal) → 基数 10(我们日常使用的)
  • 十六进制 (Hexadecimal) → 基数 16

它们本质上都是相同数值的不同表示方式,只是每一位的权重(权值)不同。

1. 四大进制核心对比表

进制基数可用数字/符号一位能表示范围常见用途内存/位关系
二进制20, 10~1计算机最底层表示1 bit = 1位二进制
八进制80~70~7早期Unix权限、部分汇编、老式系统3位二进制 = 1位八进制
十进制100~90~9人类日常计算
十六进制160~9 + A~F(A=10, F=15)0~15内存地址、颜色代码、字节表示、调试4位二进制 = 1位十六进制

最重要的一句话
二进制是计算机的原生语言,其他进制只是为了方便人类阅读而做的分组表示。

2. 位权(Place Value)快速理解

任意进制数值 = 每一位数字 × (基数^位次) 之和
(位次从右往左从 0 开始)

示例:十进制 369

369 = 3×10² + 6×10¹ + 9×10⁰
= 3×100 + 6×10 + 9×1

3. 互相转换核心方法(最实用总结)

A. 任意进制 → 十进制(最简单统一公式)

规则:每位 × 对应位权,相加

实战例子

  • 二进制 101101
    1×2⁵ + 0×2⁴ + 1×2³ + 1×2² + 0×2¹ + 1×2⁰
    = 32 + 0 + 8 + 4 + 0 + 1 = 45
  • 八进制 73
    7×8¹ + 3×8⁰ = 56 + 3 = 59
  • 十六进制 2A3
    2×16² + 10×16¹ + 3×16⁰ = 512 + 160 + 3 = 675

B. 十进制 → 任意进制(除法取余法)

规则:不断除以目标基数,记录余数(从下往上读)

示例:十进制 45 转二进制

45 ÷ 2 = 22 余 1
22 ÷ 2 = 11 余 0
11 ÷ 2 = 5 余 1
5 ÷ 2 = 2 余 1
2 ÷ 2 = 1 余 0
1 ÷ 2 = 0 余 1

从下往上读101101

C. 二进制 ↔ 八进制 / 十六进制(最高频、最快技巧)

二进制 → 八进制:从右往左每3位一组,不够补0

二进制 → 十六进制:从右往左每4位一组,不够补0

反过来也一样:八进制/十六进制每位拆成3/4位二进制

经典对照表(背下来终生受益)

十进制二进制 (4位)八进制 (3位)十六进制
0000000
1000111
2001022
101010A
15111117F

实战例子

二进制:11010111001

  • 转八进制:从右分组 011 010 111 001 → 3 2 7 13271₈
  • 转十六进制:从右分组 0110 1011 1001 → 6 B 96B9₁₆

十六进制:1A3F

转二进制:1 → 0001 A → 1010 3 → 0011 F → 1111
0001101000111111(通常省略前导0,写成 1101000111111

4. 实战转换练习(推荐自己动手)

请把下面数字互相转换(答案在最下面,建议先做再看):

  1. 二进制 11100101 → 十进制?
  2. 十进制 255 → 二进制 / 八进制 / 十六进制
  3. 十六进制 0x2F → 二进制 / 十进制
  4. 八进制 1357 → 十进制 / 二进制

参考答案

  1. 11100101₂ = 229₁₀
  2. 255₁₀ = 11111111₂ = 377₈ = 0xFF
  3. 2F₁₆ = 00101111₂ = 47₁₀
  4. 1357₈ = 1×8³ + 3×8² + 5×8¹ + 7 = 512+192+40+7 = 751₁₀
    二进制:001 011 101 111 → 1011101111₂

5. 常见应用场景速查

场景最常用进制为什么
IP地址(IPv4)十进制点分人类可读(192.168.1.1)
内存地址、寄存器十六进制紧凑,4位二进制一组
颜色代码(#RRGGBB)十六进制每两位的范围正好是 00~FF (0~255)
文件权限(Linux chmod)八进制3位二进制刚好对应 rwx 三种权限
位运算、掩码二进制 / 十六方便看每一位状态
调试、日志、抓包十六进制字节对齐,易读

6. 小技巧与速记口诀

  • 十六进制口诀:0-9 像十进制,10=A, 11=B, 12=C, 13=D, 14=E, 15=F
  • 快速判断大小:看最高位,十六进制 > 八进制 > 二进制(同位数情况下)
  • 内存里一个字节 = 8 bit = 2个十六进制位 = 总是写成两位(如 0x0A 而不是 0xA)

掌握了这四种进制的转换思维分组技巧,你在编程、调试、计算机组成原理、算法面试中遇到进制问题基本就无压力了。

有哪部分想再深入(位运算中的进制应用、负数补码、浮点数表示、进制转换的Python实现等)?或者想要更多练习题?随时告诉我!

文章已创建 4542

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部