信息科技· 第1章 数据与信息 · 1.2 数据编码与数字化生活
1.2.2知识点 · 课时

进制与进制转换

掌握进制概念,熟练进行二进制与十进制的互相转换,了解八进制与十六进制。

为什么计算机用二进制

计算机的核心是晶体管——一种微型开关,只有"通"和"断"两种状态。用 1 表示通、0 表示断,所有数据最终都要变成 0/1。这就是二进制

什么是进制

进制是计数的方法。我们日常用的是十进制(逢十进一),因为人有十根手指。但进制不止一种:

进制基数数字符号特点
二进制20、1计算机使用
八进制80 到 7每 3 位二进制一组(简化书写)
十进制100 到 9人类日常使用
十六进制160 到 9、A 到 F每 4 位二进制一组(程序开发常用)

区分不同进制,通常用下标或前缀:

  • 下标:(1011)₂ 、(11)₁₀ 、(B)₁₆
  • 前缀(编程中): 0b1011(二进制)、0o13(八进制)、0xB(十六进制)

位与字节

  • 位(bit):二进制的最小单位,一个 0 或 1
  • 字节(Byte):8 个 bit = 1 Byte,是计算机存储的基本单位
  • 容量换算:1 KB = 1024 B,1 MB = 1024 KB,1 GB = 1024 MB

二进制与十进制互相转换

一、二进制 → 十进制:按权展开

二进制每一位都有一个"权值",从右往左依次是 2⁰、2¹、2²、2³ …(即 1、2、4、8 …)。

口诀:有 1 的位,把权值加起来。

例 1:把 (1011)₂ 转成十进制

第 3 位第 2 位第 1 位第 0 位
二进制值1011
权值2³ = 82² = 42¹ = 22⁰ = 1
计入8021

结果 = 8 + 0 + 2 + 1 = (11)₁₀

例 2:记住这几个常用的权值,转换就很快:

8 位二进制的权值表(熟记即可快速转换)
128
64
32
16
8
4
2
1
示例 (1011)
0
0
0
0
1
0
1
1
权值 =
27
26
25
24
23
22
21
20
把 = 1 的位权值相加:
8+2+1=11
💡 记忆:从右到左是 1、2、4、8、16、32、64、128 —— 每位翻倍

二、十进制 → 二进制:除二取余

口诀:除以 2 取余数,倒序排列。

:把 (13)₁₀ 转成二进制

步骤除法余数
113 ÷ 261 ← 最低位
26 ÷ 230
33 ÷ 211
41 ÷ 201 ← 最高位

商为 0 时停止,余数从下往上读:(1101)₂

验证:8 + 4 + 0 + 1 = 13 ✓


八进制与十六进制简介

二进制太长(一个字节就要写 8 位 0/1),为简化书写,引入了八进制和十六进制。

八进制(Octal)

  • 基数 8,数字 0 到 7
  • 每 3 位二进制对应 1 位八进制(因为 2³ = 8)
二进制000001010011100101110111
八进制01234567

:(101011)₂ = (53)₈ 分组:101 011 → 5 3

十六进制(Hexadecimal)

  • 基数 16,数字 0 到 9、A 到 F(其中 A=10,B=11,C=12,D=13,E=14,F=15)
  • 每 4 位二进制对应 1 位十六进制(因为 2⁴ = 16)
  • 程序开发中最常用,如颜色 #FF5733、内存地址 0x7FFE
二进制000000011001101010111100110111101111
十六进制019ABCDEF

:(1110 0100)₂ = (E4)₁₆ 分组:1110 0100 → E 4

三种进制对照

十进制二进制八进制十六进制
81000108
15111117F
16100002010
25511111111377FF

记忆技巧:八进制对应 3 位一组,十六进制对应 4 位一组。这就是为什么程序员爱用十六进制——一个字节正好是 2 位十六进制(8 位二进制)。


📱 项目案例·进制感知

  • 打开 Windows 计算器,切换到「程序员模式」,输入 13,观察 BIN/OCT/HEX/DEC 四种进制同步显示
  • 网页颜色 #FFFFFF 是白色 → FF = 255,即红绿蓝各通道都是最大值
  • 用 Python 试(下章会学):bin(13)'0b1101',hex(255)'0xff'

🤔 思考

  • 一个字节(8 位)能表示的最大十进制数是多少?对应十六进制是什么?
  • 为什么 IPv4 地址 192.168.1.1 的每个数字都不超过 255?
  • 颜色 #1A2B3C 中,'1A' 对应的十进制是多少?

📝 知识小结

  • 二进制是计算机的计数方式(晶体管开关)
  • 二→十:按权展开,有 1 的位权值相加
  • 十→二:除二取余,倒序排列
  • 八进制每 3 位一组,十六进制每 4 位一组(程序员常用)
  • 1 字节 = 8 位,范围 0255,对应 2 位十六进制(00FF)