知识扩展:进制的详细介绍

目录

一、什么是进制?

二、不同进制之间的转换方法

方法1:十进制转其他进制(除基取余法)

方法2:其他进制转十进制(按权展开法)

方法3:二进制和八进制/十六进制的快速转换

进制转换心算法:超简单的口算技巧!

[例子1:二进制 1101 转十进制](#例子1:二进制 1101 转十进制)

[例子2:二进制 10110 转十进制](#例子2:二进制 10110 转十进制)

心算法的优势:

三、常用进制的特点与用途

十进制(我们最熟悉的)

二进制(计算机的语言)

十六进制(程序员的速记法)

八进制(现在较少用)

四、实际转换练习

练习1:将十进制100转换成其他进制

练习2:将二进制101101转换成十进制和十六进制

五、实用技巧和注意事项

[1. 记住常用对应关系](#1. 记住常用对应关系)

[2. 快速判断大小](#2. 快速判断大小)

[3. 转换小窍门](#3. 转换小窍门)

[4. 负数怎么办?](#4. 负数怎么办?)

六、总结与记忆口诀

转换方法总结:

简单口诀:

最终建议:


一、什么是进制?

简单理解:进制就是"逢几进一"的计数方式。就像平时我们数数:

  • 数到9,下一个就是10(这是十进制,逢10进1)

  • 二进制只有0和1,数到1,下一个就是10(逢2进1)

  • 时钟是60进制(60秒=1分钟,60分钟=1小时)

常见进制

  • 十进制:0,1,2,3,4,5,6,7,8,9,10,11...

  • 二进制:0,1,10,11,100,101,110,111...

  • 八进制:0,1,2,3,4,5,6,7,10,11,12...

  • 十六进制:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,10...

二、不同进制之间的转换方法

方法1:十进制转其他进制(除基取余法)

核心思想:用十进制数不断除以目标进制的基数,记录余数,直到商为0,最后把余数倒过来写。

例子1:十进制13转二进制(基数是2)

cpp 复制代码
步骤:
13 ÷ 2 = 6 ... 余1 ↑ (最后取)
6  ÷ 2 = 3 ... 余0 ↑
3  ÷ 2 = 1 ... 余1 ↑
1  ÷ 2 = 0 ... 余1 ↑ (最先取)

把余数从下往上读:1101
所以:13(十进制) = 1101(二进制)

例子2:十进制255转十六进制(基数是16)

cpp 复制代码
步骤:
255 ÷ 16 = 15 ... 余15 ↑ (15在十六进制中是F)
15  ÷ 16 = 0  ... 余15 ↑ (15在十六进制中是F)

把余数从下往上读:FF
所以:255(十进制) = FF(十六进制)

简单记忆:除基数,取余数,倒着读。

方法2:其他进制转十进制(按权展开法)

核心思想:把每一位数字乘以基数的"位置次方",然后全部加起来。

位置次方规律:从右往左数,第0位(个位)是基数⁰,第1位是基数¹,第2位是基数²...

例子1:二进制1101转十进制

cpp 复制代码
位置:    3   2   1   0  (从右往左数的位置)
数字:    1   1   0   1
计算:
1 × 2³ = 1 × 8 = 8
1 × 2² = 1 × 4 = 4
0 × 2¹ = 0 × 2 = 0
1 × 2⁰ = 1 × 1 = 1
总和:8 + 4 + 0 + 1 = 13

所以:1101(二进制) = 13(十进制)

例子2:十六进制2A转十进制

cpp 复制代码
十六进制:2   A
对应数字:2   10 (A在十六进制中代表10)

计算:
2 × 16¹ = 2 × 16 = 32
10 × 16⁰ = 10 × 1 = 10
总和:32 + 10 = 42

所以:2A(十六进制) = 42(十进制)

简单记忆:每位乘基数^位置,然后全加起来。

方法3:二进制和八进制/十六进制的快速转换

为什么能快速转换?

  • 1位八进制 = 3位二进制(因为2³=8)

  • 1位十六进制 = 4位二进制(因为2⁴=16)

二进制转八进制(3位一组)

cpp 复制代码
例子:二进制 101 110 011
步骤:
1. 从右往左,每3位分一组(不足3位左边补0)
   101 110 011
2. 每组转换成对应的八进制
   101(二进制) = 1×4 + 0×2 + 1×1 = 5(八进制)
   110(二进制) = 1×4 + 1×2 + 0×1 = 6(八进制) 
   011(二进制) = 0×4 + 1×2 + 1×1 = 3(八进制)
3. 连起来:563

所以:101110011(二进制) = 563(八进制)

八进制转二进制(1位拆3位)

cpp 复制代码
例子:八进制 563 转二进制
步骤:
5(八进制) = 101(二进制)
6(八进制) = 110(二进制)
3(八进制) = 011(二进制)
连起来:101110011

所以:563(八进制) = 101110011(二进制)

二进制转十六进制(4位一组)

cpp 复制代码
例子:二进制 1101 1010 1111
步骤:
1. 从右往左,每4位分一组
   1101 1010 1111
2. 每组转换成对应的十六进制
   1101 = 1×8 + 1×4 + 0×2 + 1×1 = 13 = D
   1010 = 1×8 + 0×4 + 1×2 + 0×1 = 10 = A
   1111 = 1×8 + 1×4 + 1×2 + 1×1 = 15 = F
3. 连起来:DAF

所以:110110101111(二进制) = DAF(十六进制)

十六进制转二进制(1位拆4位)

cpp 复制代码
例子:十六进制 2F8 转二进制
步骤:
2(十六进制) = 0010(二进制)  ← 补0成4位
F(十六进制) = 15(十进制) = 1111(二进制)
8(十六进制) = 1000(二进制)
连起来:0010 1111 1000(去掉前面的0就是10 1111 1000)

所以:2F8(十六进制) = 1011111000(二进制)

进制转换心算法:超简单的口算技巧!

1.心算法的核心思想

一句话总结:从左到右,每次乘以基数,加上下一位数字。

数学原理:这是霍纳法则(Horner's Method)在进制转换中的应用,避免了计算幂次的麻烦。

2.具体操作方法

二进制 → 十进制(最常用)

规则

  1. 从最左边的数字开始

  2. 第一步:这个数字就是初始值

  3. 第二步:初始值 × 2 + 下一位数字 = 新值

  4. 重复:新值 × 2 + 再下一位数字...

  5. 直到最后一位

例子1:二进制 1101 转十进制
cpp 复制代码
一步一步来:
1. 从最左边开始:第一位是 1(这就是初始值)
2. 初始值1 × 2 + 下一位1 = 1×2+1 = 3
3. 新值3 × 2 + 下一位0 = 3×2+0 = 6
4. 新值6 × 2 + 下一位1 = 6×2+1 = 13

完成!结果是13

口算过程

cpp 复制代码
1 → (×2)→ 2 → (+1)→ 3
3 → (×2)→ 6 → (+0)→ 6  
6 → (×2)→ 12 → (+1)→ 13
例子2:二进制 10110 转十进制
cpp 复制代码
心算过程:
1. 第一位是1(初始值)
2. 1×2+0=2
3. 2×2+1=5
4. 5×2+1=11
5. 11×2+0=22

结果:22

推广到其他进制

这个方法适用于任何进制转十进制!只要把乘的"2"换成对应的基数就行。

八进制 → 十进制(基数8)

例子 :八进制 352 转十进制

cpp 复制代码
心算:
1. 第一位是3(初始值)
2. 3×8+5=24+5=29
3. 29×8+2=232+2=234

结果:234

验证:3×8²+5×8¹+2×8⁰=3×64+5×8+2=192+40+2=234 ✓

例子 :十六进制 2A9 转十进制(A=10)

cpp 复制代码
心算:
1. 第一位是2(初始值)
2. 2×16+10=32+10=42
3. 42×16+9=672+9=681

结果:681

三进制、五进制等任意进制

例子:三进制 201 转十进制(基数3)

cpp 复制代码
心算:
1. 第一位是2(初始值)
2. 2×3+0=6+0=6
3. 6×3+1=18+1=19

结果:19

心算法的优势:

  1. 不用背幂次:不需要知道2³、2⁴是多少

  2. 不容易出错:每一步都很简单

  3. 适合口算:数字不大,容易心算

  4. 可中途停止:算到任何一位都知道当前结果

心算法的记忆口诀

cpp 复制代码
从前往后走,
乘基加下位,
步步为营算,
轻松得结果。

分步记忆:

  1. :第一位是起点

  2. :乘以基数(二进制乘2,八进制乘8...)

  3. :加上下一位数字

  4. :重复直到最后

  5. 核心要点:

  6. 通用公式当前值 × 基数 + 下一位数字

  7. 适用所有进制:二进制乘2,八进制乘8,十六进制乘16...

  8. 从左到右:一次处理一位,不需要反向

  9. 从简单开始:先练3-4位的二进制数

  10. 逐步增加:尝试5-6位,然后8位

  11. 混合练习:练完二进制,练八进制、十六进制

  12. 实际应用:看到车牌号、房间号等,尝试转换成二进制

三、常用进制的特点与用途

十进制(我们最熟悉的)

  • 特点:有10个数字(0-9),逢10进1

  • 用途:日常生活计算

二进制(计算机的语言)

  • 特点:只有0和1,逢2进1

  • 用途:计算机内部所有数据都用二进制表示

  • 为什么用二进制:电子设备最容易表示两种状态(开/关,高电压/低电压)

十六进制(程序员的速记法)

  • 特点:有16个符号(0-9,A-F),逢16进1

  • 用途:计算机编程中简写二进制(1位十六进制=4位二进制)

  • 例子

cpp 复制代码
二进制:1111 1111 0000 1111(太长不好记)
十六进制:FF0F(简洁多了)

八进制(现在较少用)

  • 特点:有8个数字(0-7),逢8进1

  • 用途:Unix/Linux系统中的文件权限表示

四、实际转换练习

练习1:将十进制100转换成其他进制

cpp 复制代码
1. 转二进制:
100 ÷ 2 = 50 ... 0
50  ÷ 2 = 25 ... 0
25  ÷ 2 = 12 ... 1
12  ÷ 2 = 6  ... 0
6   ÷ 2 = 3  ... 0
3   ÷ 2 = 1  ... 1
1   ÷ 2 = 0  ... 1
结果:1100100

2. 转十六进制:
100 ÷ 16 = 6 ... 4(余数4)
6   ÷ 16 = 0 ... 6(余数6)
结果:64

验证:6×16 + 4 = 96+4 = 100 ✓

练习2:将二进制101101转换成十进制和十六进制

cpp 复制代码
1. 转十进制:
位置:  5  4  3  2  1  0
数字:  1  0  1  1  0  1
计算:
1×2⁵ + 0×2⁴ + 1×2³ + 1×2² + 0×2¹ + 1×2⁰
= 32 + 0 + 8 + 4 + 0 + 1
= 45

2. 转十六进制:
先分组:0010 1101(前面补0)
0010 = 2
1101 = 13 = D
结果:2D

验证:2D(十六进制) = 2×16 + 13 = 32+13 = 45 ✓

五、实用技巧和注意事项

1. 记住常用对应关系

cpp 复制代码
二进制  十进制  十六进制
0000    0       0
0001    1       1
0010    2       2
0011    3       3
0100    4       4
0101    5       5
0110    6       6
0111    7       7
1000    8       8
1001    9       9
1010    10      A
1011    11      B
1100    12      C
1101    13      D
1110    14      E
1111    15      F

2. 快速判断大小

  • 二进制看起来数字大(比如1000),实际值小(十进制8)

  • 十六进制看起来数字小(比如F),实际值大(十进制15)

3. 转换小窍门

  • 十进制转二进制:也可以用"减权法",看这个数包含哪些2的幂次
cpp 复制代码
比如:45 = 32 + 8 + 4 + 1
32是2⁵,8是2³,4是2²,1是2⁰
对应位置写1:101101
  • 二进制转十进制:从右往左,每位依次代表1,2,4,8,16,32...遇到1就加上

4. 负数怎么办?

计算机中用"补码"表示负数,对初学者来说,先掌握正数的转换即可。

六、总结与记忆口诀

转换方法总结:

  1. 十转其他:除基数,取余数,倒着读

  2. 其他转十:每位乘(基数^位置),然后加起来

  3. 二/八/十六互转:利用"3位二进制=1位八进制","4位二进制=1位十六进制"

简单口诀:

  • 看到十进制:想"除几取余"

  • 看到二进制:想"1,2,4,8,16..."的加法

  • 看到十六进制:想"4位一组"

  • 不确定时:先转到十进制作为"中转站"

最终建议:

不要死记硬背!多练习几个例子,自然就掌握了。比如:

  • 把你的年龄转换成二进制和十六进制

  • 把你的生日(日)转换成二进制

  • 把100以内的质数都转换一遍

掌握进制转换就像学一门外语,开始可能觉得陌生,但用多了就自然熟练了。这是理解计算机如何工作的第一步!

相关推荐
noipp6 小时前
推荐题目:洛谷 P10907 [蓝桥杯 2024 国 B] 蚂蚁开会
c语言·c++·算法·编程·洛谷
努力小周8 小时前
STM32智能安防系统
c语言·stm32·单片机·嵌入式硬件·物联网·计算机网络·pcb工艺
袁小皮皮不皮9 小时前
1.HCIP BFD 学习笔记(优化版)
服务器·网络·笔记·网络协议·学习·智能路由器·ip
装不满的克莱因瓶9 小时前
【自动驾驶领域】学习 Cityscapes 数据集——城市街景语义理解的标准基准
人工智能·pytorch·python·深度学习·学习·机器学习·自动驾驶
清辞85310 小时前
产品经理需求推进流程
大数据·深度学习·学习·产品经理
YM52e10 小时前
鸿蒙PC ArkTS 声明合并问题深度解析与最佳实践
学习·华为·harmonyos·鸿蒙·鸿蒙系统
x1387028595711 小时前
c语言中srtlen(指针使用计算字符长度)、传值和传址调用
c语言·开发语言·算法·visual studio
海兰11 小时前
【实用程序】电商销售分析仪表盘 — 从零搭建一个AI参与的全栈数据洞察系统
人工智能·学习·算法
ken223212 小时前
在 Libreoffice Calc中输入自定义表情字符时,需要保存之后,才能正常显示
学习
zwenqiyu12 小时前
P5283 [十二省联考 2019] 异或粽子题解
c++·学习·算法