进制转换

梦想不会自己发光,真正闪耀的是那个为梦狂奔的你。献给知行的孩子们!(Eric.He著)


  本教程将从进制的核心概念、常见进制(十进制、二进制、八进制、十六进制)的定义,到各类数制之间的转换方法,全面拆解进制转换的核心逻辑,帮助你掌握这一编程和计算机基础必备技能。

教程目录导航

一、进制的核心概述

进制(Numeral System)即计数进位制,是人为定义的带进位的计数方法。不同进制的核心区别是基数(每一位能表示的数字个数)和进位规则(逢基数进1)。计算机领域最常用的进制包括十进制、二进制、八进制和十六进制。

1.1 十进制(Decimal)

1.2 二进制(Binary)

提示:二进制的每一位称为一个 比特(bit),8个比特组成一个 字节(Byte),是计算机存储的基本单位。

1.3 八进制(Octal)

1.4 十六进制(Hexadecimal)

十进制 二进制 八进制 十六进制
0 0 0 0
1 1 1 1
8 1000 10 8
10 1010 12 A
16 10000 20 10
255 11111111 377 FF

二、数制之间的转换

2.1 十进制与二进制的转换

2.1.1 十进制转换为二进制

核心方法:除2取余法(将十进制数反复除以2,直到商为0,余数倒序排列即为二进制数)

示例:将十进制数 13 转换为二进制
  1. 13 ÷ 2 = 6 余 1
  2. 6 ÷ 2 = 3 余 0
  3. 3 ÷ 2 = 1 余 1
  4. 1 ÷ 2 = 0 余 1
  5. 将余数倒序排列:1101 → 13(D) = 1101(B)

2.1.2 二进制转换为十进制

核心方法:按位权展开求和(每一位数字 × 对应位权,累加所有结果)

示例:将二进制数 1011 转换为十进制
  1. 位权分解:1×2³ + 0×2² + 1×2¹ + 1×2⁰
  2. 计算:8 + 0 + 2 + 1 = 11 → 1011(B) = 11(D)

2.2 八进制与二进制的转换

核心规律:1位八进制数 = 3位二进制数(因 8 = 2³),可直接按位映射转换

2.2.1 八进制转换为二进制

方法:将每一位八进制数转换为对应的3位二进制数,不足3位补前导0,拼接结果

示例:将八进制数 56(O) 转换为二进制
  1. 拆分八进制位:5 和 6
  2. 映射为3位二进制:5 → 101,6 → 110
  3. 拼接结果:101110 → 56(O) = 101110(B)

2.2.2 二进制转换为八进制

方法:从右往左将二进制数每3位分组,不足3位补前导0,每组转换为对应的八进制数

示例:将二进制数 1101011(B) 转换为八进制
  1. 分组(从右往左):001 101 011(补前导0使第一组为3位)
  2. 每组转换为八进制:001→1,101→5,011→3
  3. 拼接结果:153 → 1101011(B) = 153(O)

2.3 十六进制与二进制的转换

核心规律:1位十六进制数 = 4位二进制数(因 16 = 2⁴),可直接按位映射转换

2.3.1 十六进制转换为二进制

方法:将每一位十六进制数转换为对应的4位二进制数,不足4位补前导0,拼接结果

示例:将十六进制数 1A8(H) 转换为二进制
  1. 拆分十六进制位:1、A、8
  2. 映射为4位二进制:1→0001,A(10)→1010,8→1000
  3. 拼接结果:000110101000 → 1A8(H) = 110101000(B)(可省略前导0)

2.3.2 二进制转换为十六进制

方法:从右往左将二进制数每4位分组,不足4位补前导0,每组转换为对应的十六进制数

示例:将二进制数 1101101011(B) 转换为十六进制
  1. 分组(从右往左):0011 0110 1011(补前导0使第一组为4位)
  2. 每组转换为十六进制:0011→3,0110→6,1011→B
  3. 拼接结果:36B → 1101101011(B) = 36B(H)

2.4 八进制转换为十进制

核心方法:按位权展开求和(每一位数字 × 8的对应次方,累加所有结果)

示例:将八进制数 127(O) 转换为十进制
  1. 位权分解:1×8² + 2×8¹ + 7×8⁰
  2. 计算:64 + 16 + 7 = 87 → 127(O) = 87(D)

2.5 十六进制转换为十进制

核心方法:按位权展开求和(每一位字符 × 16的对应次方,累加所有结果;A-F需先转换为10-15)

示例1:将十六进制数 3F(H) 转换为十进制
  1. 位权分解:3×16¹ + F(15)×16⁰
  2. 计算:48 + 15 = 63 → 3F(H) = 63(D)
示例2:将十六进制数 100(H) 转换为十进制
  1. 位权分解:1×16² + 0×16¹ + 0×16⁰
  2. 计算:256 + 0 + 0 = 256 → 100(H) = 256(D)

三、注意事项

四、总结

本教程从进制的核心概念到具体转换方法,全面拆解了进制转换的逻辑。掌握进制转换,是理解计算机数据存储和运算的关键,也是编程进阶的重要基础。


返回顶部