基础知识——进制转换

一、各进制基础概念
十进制(Decimal)

基数:10(0-9)

用途:日常计算。

示例:123 表示 1×10² + 2×10¹ + 3×10⁰ = 123。

二进制(Binary)

基数:2(0-1)

用途:计算机底层数据存储。

示例:1011 表示 1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 11(十进制)。

八进制(Octal)

基数:8(0-7)

用途:简化二进制表示(3位二进制对应1位八进制)。

示例:17(八进制)= 1×8¹ + 7×8⁰ = 15(十进制)。

十六进制(Hexadecimal)

基数:16(0-9, A-F)

用途:简化二进制表示(4位二进制对应1位十六进制)。

示例:1A(十六进制)= 1×16¹ + 10×16⁰ = 26(十进制)。

二、进制转换方法
1. 其他进制 → 十进制
公式:按权展开求和
示例:

二进制 1011 → 十进制:
1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 8 + 0 + 2 + 1 = 11

十六进制 A3 → 十进制:
10×16¹ + 3×16⁰ = 160 + 3 = 163

2. 十进制 → 其他进制
方法:除基取余法(整数部分),乘基取整法(小数部分)。
示例(十进制 → 二进制):

十进制 11 → 二进制:

11 ÷ 2 = 5 余 1  
5 ÷ 2 = 2 余 1  
2 ÷ 2 = 1 余 0  
1 ÷ 2 = 0 余 1  
逆序排列余数 → 1011

3. 二进制 ↔ 八进制/十六进制
二进制 → 八进制:
每3位二进制为一组,不足左侧补0,转为对应八进制数。
示例:
101 110 → 5 6 → 56(八进制)

二进制 → 十六进制:
每4位二进制为一组,不足左侧补0,转为对应十六进制数。
示例:
1010 1101 → A D → AD(十六进制)

八进制/十六进制 → 二进制:
每位展开为3位(八进制)或4位(十六进制)二进制。
示例:
3F(十六进制)→ 0011 1111 → 00111111

4. 八进制 ↔ 十六进制
步骤:

八进制 → 二进制 → 十六进制

十六进制 → 二进制 → 八进制
示例:
27(八进制)→ 010 111 → 10111 → 17(十六进制)

三、快速转换表
十进制    二进制(4位)    八进制    十六进制
0    0000    0    0
1    0001    1    1
2    0010    2    2
3    0011    3    3
4    0100    4    4
5    0101    5    5
6    0110    6    6
7    0111    7    7
8    1000    10    8
9    1001    11    9
10    1010    12    A
11    1011    13    B
12    1100    14    C
13    1101    15    D
14    1110    16    E
15    1111    17    F
四、应用场景
二进制:计算机逻辑电路、数据存储。

八进制:Unix文件权限(如 chmod 755)。

十六进制:内存地址、颜色编码(如 #FF0000 表示红色)。

五、工具辅助
计算器:使用科学计算器的进制模式。

编程语言:

Python: bin(), oct(), hex()

C/C++: printf("%o", num)(八进制), printf("%x", num)(十六进制)

你可能感兴趣的:(c语言)