什么是进制转换计算器?
进制转换计算器可以把一个数字从某种位置计数法转换成另一种——比如把二进制(基数 2)转成十进制(基数 10),或把十进制转成十六进制(基数 16)。计算机内部的一切数据都以二进制存储,网络工程师习惯阅读十六进制,一些老旧系统还在用八进制,因此在编程、电子工程和计算机科学课程中,进制之间的换算几乎是每天都要做的事。本工具支持二进制、八进制、十进制和十六进制之间的任意方向转换。
如何使用
先输入要转换的数字,在"原进制"中选择它当前的基数,再在"目标进制"中选择你想要的结果基数。十六进制使用 A–F 这几个字母(不区分大小写)。计算器会同时给出目标进制下的结果以及对应的十进制数值,方便你随时核对答案。
公式原理详解
转换分两步完成。第一步,先用位权展开把输入读取为十进制:每一位数字乘以基数的相应次方。以二进制 1010 为例,即
$$1 \times 2^3 + 0 \times 2^2 + 1 \times 2^1 + 0 \times 2^0 = 8 + 0 + 2 + 0 = 10$$第二步,再用短除法(连续除法)把这个十进制数值转换成目标进制:不断除以新的基数并记录余数,最后把余数从下往上(即最后一个到第一个)依次读出即可。其通用公式为
$$\text{Decimal} = \sum_{i=0}^{k-1} d_i \cdot \text{From Base}^{\,i} \;\longrightarrow\; \text{Output in } \text{To Base}$$其中
$$\begin{gathered} \text{Decimal} = \sum_{i=0}^{k-1} d_i \cdot \text{From Base}^{\,i} \\[1.5em] \text{where}\quad \left\{ \begin{aligned} d_i &= \text{digit } i \text{ of } \text{Number to Convert} \\ \text{Output} &= \text{Decimal converted to } \text{To Base} \end{aligned} \right. \end{gathered}$$
实例演算
把十六进制 FF 转成十进制。按位权展开:
$$\text{F} \times 16^1 + \text{F} \times 16^0 = 15 \times 16 + 15 \times 1 = 240 + 15 = 255$$如果再把 255 表示成二进制,用短除法不断除以 2,可得 11111111——这正是一个 8 位字节(byte)所能表示的最大值,相信很多人都很熟悉。
常见进制转换参考表
此表列出了四种标准数制中的常用值。十进制(十进制)是日常计数系统;二进制(二进制)、八进制(八进制)和十六进制(十六进制)在计算中很常见。请注意二的每个幂——16、32、64、128、256——在十六进制中产生一个干净的个位翻转,在二进制中产生一个精确的幂。
| 十进制 (10) | 二进制 (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 |
关键术语解释
- 基数(进制)
- 数制中使用的不同数字符号的数量。十进制使用十个符号(0–9);二进制使用两个(0–1)。基数也确定了相邻位置之间的乘数。
- 位置记数法
- 一种数字的贡献取决于其位置的系统。每个位置代表基数的连续幂,从右到左递增。
- 位置值
- 单个数字贡献的值,等于数字乘以基数的位置幂。例如,八进制 745 中的前导 7 的位置值为 \(7\times 8^2 = 448\)。
- 数字
- 数字中的单个符号。有效数字范围从 0 到(基数 − 1);十六进制用字母 A–F 扩展 0–9,表示值 10–15。
- 半字节
- 4 位的组合。一个半字节恰好映射到一个十六进制数字(0–F),这就是为什么二进制到十六进制的转换是通过将位分组为半字节来完成的。
- 字节
- 8 位的组合(两个半字节),能够表示 \(2^8 = 256\) 个值,从 0 到 255(十六进制的 00 到 FF)。
- 最高有效位(MSD)
- 数字的最左边数字,具有最高的位置值。
- 最低有效位(LSD)
- 最右边的数字,具有最低的位置值(基数的 0 次幂,即 1)。
- 二进制(二进制)
- 使用数字 0 和 1。数字电子产品的本机语言,其中每一位都是开/关状态。
- 八进制(八进制)
- 使用数字 0–7。每个八进制数字对应于恰好 3 个二进制位;在计算历史上很常见,仍用于文件权限。
- 十进制(十进制)
- 使用数字 0–9。日常人类计数和算术的标准系统。
- 十六进制(十六进制)
- 使用数字 0–9 和 A–F。紧凑地表示二进制,因为每个十六进制数字恰好等于 4 位,广泛用于内存地址和颜色代码。
常见问题
十六进制里的字母代表什么?在基数 16 中,数字依次是 0–9,然后 \(\text{A}=10\)、\(\text{B}=11\)、\(\text{C}=12\)、\(\text{D}=13\)、\(\text{E}=14\)、\(\text{F}=15\)。
为什么二进制是基数 2?二进制只使用 0 和 1 两个数字,恰好对应计算机内部电子开关的"开"和"关"两种状态。
可以转换小数(分数)吗?本计算器只处理整数。小数部分的进制转换需要使用另一种"乘基取整"的方法,原理有所不同。