什么是进制转换器?
进制转换器只改变数字的书写形式,而不改变它的实际大小。程序员和计算机经常需要在二进制(2 进制)、八进制(8 进制)、十进制(10 进制)和十六进制(16 进制)之间来回切换。本工具支持 2 到 36 之间的任意进制,使用 0–9 这十个数字,再加上 A–Z 这二十六个字母来表示。
如何使用
输入你想要转换的数字,设定它当前所使用的进制(原进制),再设定你想转换成的进制(目标进制)。对于大于 10 的进制,需要用字母表示:A=10,B=11,一直到 Z=35。计算器还会同时显示对应的十进制(10 进制)数值,方便你核对结果。
计算原理详解
转换分两步完成。第一步,先按"位值记数法"把输入读成十进制:把每一位数字乘以"原进制的位次次方",再把所有乘积相加。第二步,用"除基取余法"把这个十进制值转换为目标进制——不断除以目标进制,记下每次的余数,再用商继续除,直到商为 0,最后把余数倒序排列读出,就是结果。
$$\text{Result} = \left( \sum_{i=0}^{k-1} d_i \cdot \text{From Base}^{\,i} \right)_{10} \longrightarrow \text{To Base}$$其中:
$$\begin{gathered} V_{10} = \sum_{i=0}^{k-1} d_i \cdot \text{From Base}^{\,i} \\[1.5em] \text{Result} = \left( V_{10} \right)_{\text{To Base}} \\[1.5em] \text{where}\quad \left\{ \begin{aligned} d_i &= \text{digit } i \text{ of } \text{Number} \\ k &= \text{number of digits} \end{aligned} \right. \end{gathered}$$
实例演算
把二进制 1010 转为十进制。按位值展开:
$$1\cdot 2^3 + 0\cdot 2^2 + 1\cdot 2^1 + 0\cdot 2^0 = 8 + 0 + 2 + 0 = 10$$反过来,把十进制 255 转为十六进制:\(255 \div 16 = 15\) 余 15(F),\(15 \div 16 = 0\) 余 15(F),倒序读出即为 FF。
常见数字进制及其数字集
数字进制(或基数)定义了可用的不同数字符号的数量以及每个位置的权重。下表总结了转换器处理的最常用的进制,以及它们使用的符号和典型应用领域。
| 进制 | 名称 | 数字集 | 典型使用场景 |
|---|---|---|---|
| 2 | 二进制 | 0–1 | 数字电子设备和计算机内存中的原生表示法;每一位要么是开的,要么是关的。 |
| 8 | 八进制 | 0–7 | 三位二进制的紧凑分组;Unix/Linux文件权限模式(例如755)。 |
| 10 | 十进制 | 0–9 | 日常人类算术、货币、测量和一般计数。 |
| 16 | 十六进制 | 0–9, A–F | 字节、内存地址、颜色代码(例如#FF8800)和机器代码的紧凑显示。 |
| 36 | 36进制 | 0–9, A–Z | 使用数字加拉丁字母的最大进制;短的字母数字ID和URL段。 |
十进制–二进制–八进制–十六进制转换表
以下参考表显示了常见十进制值及其对应的二进制(2进制)、八进制(8进制)和十六进制(16进制)等值。下面的行包括标记常见字节和字边界的二的幂。
| 十进制 | 二进制 | 八进制 | 十六进制 |
|---|---|---|---|
| 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 |
| 2 | 10 | 2 | 2 |
| 3 | 11 | 3 | 3 |
| 4 | 100 | 4 | 4 |
| 5 | 101 | 5 | 5 |
| 6 | 110 | 6 | 6 |
| 7 | 111 | 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 |
| 16 | 10000 | 20 | 10 |
| 32 | 100000 | 40 | 20 |
| 64 | 1000000 | 100 | 40 |
| 128 | 10000000 | 200 | 80 |
| 255 | 11111111 | 377 | FF |
注意255(单个字节的最大值)恰好是八个二进制的1和两个十六进制的F——每个十六进制数字恰好映射四位二进制数。
关键术语解释
- 进制 / 基数
- 数字系统使用的唯一数字符号的个数。10进制(十进制)使用十个符号(0–9);2进制(二进制)使用两个(0–1)。"基数"是进制在正式数学中的同义词。
- 位置记数法
- 一种数字的值取决于其位置的系统。每个位置的权重等于基数的幂:在\(b\)进制中,位置\(i\)(从右边的0开始计数)的数字\(d_i\)的贡献是\(d_i \cdot b^{\,i}\)。
- 数字
- 一个数字中的单个符号。有效数字受进制限制——16进制允许0–9和A–F,其中A–F代表十进制值10–15。
- 最高有效位(MSD)
- 最左边的数字,具有最大的位置权重,因此对数字值的影响最大。
- 最低有效位(LSD)
- 最右边的数字,位置权重为\(b^{0}=1\);改变它会使数值改变最少。
- 二进制、八进制、十六进制
- 分别是2进制、8进制和16进制的数字系统。它们在计算中受欢迎,因为它们的基数是二的幂,所以位组转换得很干净:每个八进制数字三位,每个十六进制数字四位。
- 商和余数
- 整数除法的两个结果,用于从十进制转换为其他进制:重复除以目标基数,记录每个余数作为数字(最低有效位优先),直到商达到0。
常见问题
最大支持几进制?36 进制,因为标准的字符集 0–9 加上 A–Z 一共提供 36 个符号。
能处理负数吗?可以——开头的负号会原样保留在结果中。
能转换分数或小数吗?当前版本只支持整数(不含小数部分)。