1. 进制转换的基础认知
第一次接触进制转换是在大学计算机基础课上,当时教授用"不同语言的计数方式"来比喻进制差异。就像中文用"万"为单位,而英文用"thousand"作为计数节点一样,计算机世界也存在多种"计数语言"——这就是进制。
最常用的进制包括:
- 二进制(Binary):基数为2,使用数字0和1
- 八进制(Octal):基数为8,使用数字0-7
- 十进制(Decimal):基数为10,使用数字0-9
- 十六进制(Hexadecimal):基数为16,使用数字0-9和字母A-F
注意:十六进制中A-F对应十进制值10-15,这是初学者容易混淆的点。建议记忆为"A=10,B=11...F=15"的对应关系。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 进制转换的核心原理
2.1 权重展开法
任何进制的数都可以表示为各位数字与对应位权的乘积之和。例如十进制数365可以表示为:
3×10² + 6×10¹ + 5×10⁰ = 300 + 60 + 5 = 365
这个原理适用于所有进制:
- 二进制1011 = 1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 8 + 0 + 2 + 1 = 11(十进制)
- 十六进制A3F = 10×16² + 3×16¹ + 15×16⁰ = 2560 + 48 + 15 = 2623(十进制)
2.2 除基取余法(十进制转其他进制)
这是最常用的转换方法之一,以十进制转二进制为例:
- 用十进制数除以2,记录商和余数
- 将商继续除以2,重复步骤1
- 直到商为0时停止
- 将余数从最后一个到第一个依次排列,就是对应的二进制数
示例:将13转换为二进制
code复制13 ÷ 2 = 6 余 1
6 ÷ 2 = 3 余 0
3 ÷ 2 = 1 余 1
1 ÷ 2 = 0 余 1
从下往上读取余数:1101,所以13的二进制是1101。
2.3 乘基取整法(小数部分转换)
对于带小数的数值转换,整数部分用除基取余法,小数部分用乘基取整法:
- 用小数部分乘以目标进制基数
- 记录结果的整数部分
- 用新的小数部分重复步骤1-2
- 直到小数部分为0或达到所需精度
- 将整数部分从上往下排列
示例:将0.625转换为二进制
code复制0.625 × 2 = 1.25
