C 语言进制转换全解:原理、辗除法与位权速算

唐可
唐可
发布时间:2026-10-13| 5人浏览过
原创

本文系统讲解 C 语言中各类进制间的转换逻辑,涵盖从原理到实操的完整路径。通过“按权相加”实现非十进制向十进制转换,利用“除模取余”完成十进制向二进制的转化,并总结二进制与八进制、十六进制之间高效互转的快速法则,帮助开发者彻底理清不同进制数值间的对应关系。

非十进制转换为十进制的原理

二进制、八进制和十六进制向十进制的转换核心在于“按权相加”。所谓“位权”,即数字所在位置的权重值。

  • 十进制第 i 位的位权为 10^(i-1);
  • 二进制第 i 位的位权为 2^(i-1);
  • 对于基数为 N 的任意进制,第 i 位的位权统一表示为 N^(i-1)。

以下是具体换算示例:

1. 二进制转十进制

整数示例:1001

1 × 2³ + 0 × 2² + 0 × 2¹ + 1 × 2⁰ = 8 + 0 + 0 + 1 = 9

小数示例:101.1001

1 × 2² + 0 × 2¹ + 1 × 2⁰ + 1 × 2⁻¹ + 0 × 2⁻² + 0 × 2⁻³ + 1 × 2⁻⁴
= 4 + 0 + 1 + 0.5 + 0 + 0 + 0.0625 = 5.5625

2. 八进制转十进制

整数示例:0302

3 × 8² + 0 × 8¹ + 2 × 8⁰ = 192 + 0 + 2 = 194

小数示例:0302.46

3 × 8² + 0 × 8¹ + 2 × 8⁰ + 4 × 8⁻¹ + 6 × 8⁻²
= 192 + 0 + 2 + 0.5 + 0.09375 = 194.59375

3. 十六进制转十进制

示例:0Xea7

14 × 16² + 10 × 16¹ + 7 × 16⁰ = 3584 + 160 + 7 = 3751

十进制转换为二进制的方法

第1步:准备除数

使用“除模取余”法(又称辗除法),将目标进制作为除数(模)。此处以十进制转二进制为例,除数为 2。

第2步:执行辗转相除

如图所示,将待转换的十进制数不断除以 2,记录每一次的余数,直到商变为 0 为止。

第3步:倒序排列余数

关键注意:余数需倒序排列。最先得到的余数位于二进制的最低位(末尾),最后得到的余数位于最高位(开头)。

在上方例子中,若余数正序得到 11001,则最终转换结果为 10011。

虽然该方法同样适用于其他进制的转换,但计算过程较为繁琐。在实际应用中,推荐使用更高效的位对齐转换法。

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

由于 2^3 = 8,两者之间存在天然的三位对应关系。

二进制转八进制

  • 规则:每三位二进制数对应一位八进制数,从低位向高位分组。
  • 补齐:若高位不足三位,用零补充。

结果验证:二进制 1011101 转换为八进制结果为 0135。

八进制转二进制

  • 规则:每位八进制数直接展开为对应的三位二进制数,顺序保持一致。

结果验证:八进制 0135 还原为二进制结果为 1011101。

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

由于 2^4 = 16,两者之间存在四位对应关系,适合计算机底层数据查看与调试。

二进制转十六进制

  • 规则:每四位二进制数对应一位十六进制数,从低位向高位分组。
  • 补齐:高位不足四位时补零。

结果验证:二进制 1001011101 转换为十六进制结果为 0X25D。

十六进制转二进制

  • 规则:每位十六进制数展开为对应的四位二进制数。

以上就是对 C 语言进制转换详细方法的整理,涵盖了手动计算的数学原理及便捷的位权映射法则,相关内容的学习可以参考上述步骤与图示!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。