进制转换是计算机科学和数学中的基础操作,主要用于不同数制之间的数值表示转换。以下是常见进制(二进制、八进制、十进制、十六进制)的转换方法及示例:
一、其他进制 → 十进制
方法:按权展开,逐位相加。
公式:
[ \text{十进制值} = \sum (每一位数值 \times 基数^{\text{位权}}) ]
示例:
-
二进制 → 十进制
( 1011_2 = 1×2^3 + 0×2^2 + 1×2^1 + 1×2^0 = 8 + 0 + 2 + 1 = 11_{10} ) -
十六进制 → 十进制
( 2A_{16} = 2×16^1 + 10×16^0 = 32 + 10 = 42_{10} )
二、十进制 → 其他进制
方法:除基取余法(整数部分)或乘基取整法(小数部分),倒序排列余数。
1. 整数部分转换(除基取余)
步骤:
- 用十进制数除以目标进制基数,记录余数。
- 将商继续除以基数,直到商为0。
- 余数倒序排列即为结果。
示例:
将 ( 25_{10} ) 转换为二进制:
[
\begin{align*}
25 ÷ 2 &= 12 \ \text{余} \ 1 \
12 ÷ 2 &= 6 \ \ \ \text{余} \ 0 \
6 ÷ 2 &= 3 \ \ \ \text{余} \ 0 \
3 ÷ 2 &= 1 \ \ \ \text{余} \ 1 \
1 ÷ 2 &= 0 \ \ \ \text{余} \ 1 \
\end{align*}
]
倒序排列余数:( 11001_2 )
2. 小数部分转换(乘基取整)
步骤:
- 用小数部分乘以目标进制基数,记录整数部分。
- 取结果的小数部分继续乘以基数,直到小数部分为0或达到精度要求。
- 整数部分正序排列即为结果。
示例:
将 ( 0.625_{10} ) 转换为二进制:
[
\begin{align*}
0.625 × 2 &= 1.25 \quad \text{取整} \ 1 \
0.25 × 2 &= 0.5 \quad \ \ \text{取整} \ 0 \
0.5 × 2 &= 1.0 \quad \ \ \text{取整} \ 1 \
\end{align*}
]
正序排列整数部分:( 0.101_2 )
三、非十进制之间的直接转换
1. 二进制 ↔ 八进制/十六进制
-
二进制 → 八进制:每 3位 二进制为一组,转换为1位八进制(不足补零)。
示例:
( 101\ 110_2 ) → ( 5_8 \ 6_8 = 56_8 ) -
二进制 → 十六进制:每 4位 二进制为一组,转换为1位十六进制(不足补零)。
示例:
( 1101\ 0110_2 ) → ( D_{16} \ 6_{16} = D6_{16} ) -
反向转换:将八进制/十六进制每一位展开为3/4位二进制。
示例:
( 3F_{16} = 0011\ 1111_2 )
2. 八进制 ↔ 十六进制
需以二进制或十进制为中间桥梁。
示例:
( 75_8 → 111\ 101_2 → 0011\ 1101_2 → 3D_{16} )
四、进制表示符号
- 二进制:前缀
0b
(如0b1010
) - 八进制:前缀
0
(如017
) - 十六进制