目录
1. 二进制数、八进制数、十六进制数转换为十进制数
2. 十进制数转换为二进制数、八进制数、十六进制数
3. 二进制数和十六进制数的相互转换
4. 使用电脑计算器进行进制转换
1. 二进制数、八进制数、十六进制数转换为十进制数
十进制数的每一位都是10的指数幂。如,
1998 = 1×10^3 + 9×10^2 + 9×10^1 + 8×10^0
将这个思路应用于二进制数、八进制数、十六进制数,就能将这些数转换为十进制数。
二进制数101转换为十进制数:
101 = 1×2^2 + 0×2^1 + 1×2^0 = 5
八进制数123转换为十进制数:
123 = 1×8^2 + 2×8^1 + 3×8^0 = 83
十六进制数1FD转换为十进制数:
1FD = 1×16^2 + 15×16^1 + 13×16^0 = 509
2. 十进制数转换为二进制数、八进制数、十六进制数

将这个思路应用于二进制数、八进制数、十六进制数,就能将十进制数转换为二进制数、八进制数、十六进制数。
十进制数57转换为二进制数:
111001
十进制数57转换为八进制数:
71
十进制数57转换为十六进制数:
39
给定一个十进制数M(32位整数),以及需要转换的进制数N(2≤N≤16)。将十进制数M转化为N进制数:
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
    string s;
    string table = "0123456789ABCDEF";//表示映射关系
    int m, n;
    while (cin >> m >> n)
    {
        if (m == 0)
        {
            cout << 0 <<endl;
        }
        
        bool flag = false;//默认情况下m是正数
        if (m < 0)
        {
            m = -m;//如果m是负数,取相反数,变成正数
            flag = true;//flag=true表示m本来是负数
        }
        while (m != 0)
        {
            s += table[m%n];//将余数拼接到字符串
            m /= n;
        }
        if (flag == true)
        {
            s += "-";//如果m本来是负数,加上负号
        }
        reverse(s.begin(), s.end());//倒置字符串
        cout << s <<endl;
    }
} 
3. 二进制数和十六进制数的相互转换
4位二进制数和1位十六进制数是相互对应的(即4位的二进制数0000~1111,就是1位的十六进制数0~F)。
| 二进制数 | 十六进制数 | 
|---|---|
| 0000 | 0 | 
| 0001 | 1 | 
| 0010 | 2 | 
| 0011 | 3 | 
| 0100 | 4 | 
| 0101 | 5 | 
| 0110 | 6 | 
| 0111 | 7 | 
| 1000 | 8 | 
| 1001 | 9 | 
| 1010 | A | 
| 1011 | B | 
| 1100 | C | 
| 1101 | D | 
| 1110 | E | 
| 1111 | F | 
二进制数0111101010011100转换为十六进制数:
0111 1010 1001 1100
7 A 9 C
十六进制数8AF7转换为二进制数:
8 A F 7
1000 1010 1111 0111
4. 使用电脑计算器进行进制转换
将计算器切换为程序员选项:

将十进制数16转换为二进制数、八进制数、十六进制数:























