Course playlist

数据进制转换教程

掌握二进制、八进制、十进制、十六进制的相互转换原理与方法

进制系统简介

进制(基数)是表示数字的系统,它定义了数字的表示方法和运算规则。计算机科学中常用的进制有二进制(基数为2)、八进制(基数为8)、十进制(基数为10)和十六进制(基数为16)。

为什么需要不同的进制?

不同进制在不同场景下各有优势:

  • 二进制:计算机硬件的基础,只有0和1两种状态
  • 八进制:早期计算机系统常用,便于与二进制转换
  • 十进制:人类日常使用的计数系统
  • 十六进制:现代计算机科学常用,能够简洁表示二进制数据

掌握这些进制之间的转换方法对于理解计算机底层原理、进行程序调试和数据分析至关重要。

记忆技巧:十六进制的10-15用A-F表示,对应十进制的10-15。二进制每位称为一个"比特"(bit),8个比特构成一个"字节"(byte)。

二进制系统

定义:二进制是基数为2的计数系统,只使用两个数字:0和1。每个二进制位称为一个比特(bit)。

二进制的特点

  • 只有两个数字符号:0和1
  • 逢2进1,借1当2
  • 权值为2的幂次(... 2³ 2² 2¹ 2⁰ ...)
  • 是计算机硬件实现的基础(电路的通断、高低电平)

二进制表示示例

例子1:二进制数 1011 转换为十进制

计算:1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 8 + 0 + 2 + 1 = 11

例子2:十进制数 13 转换为二进制

计算:13 ÷ 2 = 6 余 1,6 ÷ 2 = 3 余 0,3 ÷ 2 = 1 余 1,1 ÷ 2 = 0 余 1

从下往上读取余数:1101

二进制的重要性:

  • 所有数字数据在计算机中都以二进制形式存储
  • 二进制运算简单,易于用电子电路实现
  • 二进制逻辑是布尔代数和数字电路的基础

八进制系统

定义:八进制是基数为8的计数系统,使用数字0-7。每个八进制位可以精确表示3个二进制位。

八进制的特点

  • 使用八个数字符号:0, 1, 2, 3, 4, 5, 6, 7
  • 逢8进1,借1当8
  • 权值为8的幂次(... 8³ 8² 8¹ 8⁰ ...)
  • 与二进制转换简单(每3位二进制对应1位八进制)

八进制与二进制的快速转换

例子1:二进制数 101110 转换为八进制

步骤:从右向左每3位一组(不足补0)→ 101 110 → 对应八进制:5 6

结果:56

例子2:八进制数 74₈ 转换为二进制

步骤:7 → 111,4 → 100,合并:111100

使用场景:八进制在早期的Unix系统权限表示和某些编程语言中仍有使用,但现在更多被十六进制取代。

十进制系统

定义:十进制是基数为10的计数系统,使用数字0-9。这是人类日常生活中最常用的计数系统。

十进制的特点

  • 使用十个数字符号:0, 1, 2, 3, 4, 5, 6, 7, 8, 9
  • 逢10进1,借1当10
  • 权值为10的幂次(... 10³ 10² 10¹ 10⁰ ...)
  • 是人类自然形成的计数系统(可能与人有10个手指有关)

十进制与其他进制的转换

例子1:十进制数 255 转换为十六进制

计算:255 ÷ 16 = 15 余 15(F),15 ÷ 16 = 0 余 15(F)

从下往上读取余数:FF₁₆

例子2:二进制数 1100101 转换为十进制

计算:1×2⁶ + 1×2⁵ + 0×2⁴ + 0×2³ + 1×2² + 0×2¹ + 1×2⁰ = 64 + 32 + 0 + 0 + 4 + 0 + 1 = 101

十进制与其他进制的转换方法:

  • 其他进制转十进制:按权展开求和
  • 十进制转其他进制:除基取余法(整数部分),乘基取整法(小数部分)

十六进制系统

定义:十六进制是基数为16的计数系统,使用数字0-9和字母A-F(或a-f)。每个十六进制位可以精确表示4个二进制位。

十六进制的特点

  • 使用十六个符号:0-9, A(10), B(11), C(12), D(13), E(14), F(15)
  • 逢16进1,借1当16
  • 权值为16的幂次(... 16³ 16² 16¹ 16⁰ ...)
  • 与二进制转换非常方便(每4位二进制对应1位十六进制)

十六进制与二进制的快速转换

例子1:二进制数 110110101 转换为十六进制

步骤:从右向左每4位一组(不足补0)→ 1 1011 0101 → 0001 1011 0101 → 对应十六进制:1 B 5

结果:1B5₁₆

例子2:十六进制数 A3F₁₆ 转换为二进制

步骤:A → 1010,3 → 0011,F → 1111,合并:101000111111

使用场景:十六进制广泛用于表示内存地址、颜色值(如#FF0000表示红色)、机器码和调试信息,因为它能简洁地表示二进制数据。

进制表示法比较

下面比较0-20在不同进制下的表示:

十进制 二进制 八进制 十六进制
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 10000 20 10
17 10001 21 11
18 10010 22 12
19 10011 23 13
20 10100 24 14

快速转换技巧

1 二进制 ↔ 八进制:每3位二进制对应1位八进制
2 二进制 ↔ 十六进制:每4位二进制对应1位十六进制
3 八进制 ↔ 十六进制:先转换为二进制,再转换为目标进制
4 十进制 ↔ 其他进制:使用除基取余法(整数部分)

转换方法详解

1. 十进制转换为其他进制(整数部分)

示例:将十进制数 173 转换为二进制

使用"除2取余法":

173 ÷ 2 = 86 余 1

86 ÷ 2 = 43 余 0

43 ÷ 2 = 21 余 1

21 ÷ 2 = 10 余 1

10 ÷ 2 = 5 余 0

5 ÷ 2 = 2 余 1

2 ÷ 2 = 1 余 0

1 ÷ 2 = 0 余 1

从下往上读取余数:10101101

2. 其他进制转换为十进制

示例:将十六进制数 2A7₁₆ 转换为十进制

使用"按权展开法":

2×16² + A(10)×16¹ + 7×16⁰ = 2×256 + 10×16 + 7×1 = 512 + 160 + 7 = 679

3. 二进制与八进制/十六进制快速转换

二进制转十六进制:

二进制:11010111001

从右向左每4位分组:110 1011 1001 → 0110 1011 1001(左侧补0)

对应十六进制:6 B 9

结果:6B9₁₆

进制转换测试题

1. 二进制数 110101 对应的十进制数是多少?

2. 十六进制数 FF₁₆ 对应的二进制数是多少?

3. 十进制数 128 对应的八进制数是多少?

进制转换器

使用下面的工具进行任意进制之间的转换:

结果将显示在这里
题目 对/错/率 难度 记录 通过
姓名 分数 提交时间 操作