什么是进制转换计算器?
这款工具可以把一个非负整数从某一种进制一次性换算成五种常用进制:十进制(基数 10)、十六进制(基数 16)、八进制(基数 8)、六进制(基数 6)和二进制(基数 2)。它是纯粹的数学换算工具,不涉及任何地区或国家的特殊规则,因此在任何地方使用结果都完全一致。程序员、学生和电子爱好者常用它来快速查看同一个数值在不同进制下的表示形式。
使用方法
在"数值 (x)"输入框中输入你的数字,注意所用的数字必须符合所选进制的规则。通过单选按钮选择输入的进制。十六进制可以使用字母 A–F(大小写均可);六进制只能用 0–5,八进制只能用 0–7,二进制只能用 0–1。输入后即可同时读取五种进制的对应结果。支持的取值范围为 \(0\) 到 \(2^{64} - 1\),仅支持整数(不支持小数或负数)。
计算原理详解
解析时从最高位到最低位逐位读取:\(N = N \times \text{基数} + \text{该位的数值}\),其中 0–9 对应 0–9,A–F 对应 10–15。换算成目标进制 \(b\) 时采用"除基取余"法:计算 \(r = N \bmod b\) 记录余数,再令 \(N = N \div b\),重复此过程直到 \(N = 0\),最后将记录的余数逆序排列即可。对于十六进制,余数 10–15 会写成 A–F。一般地,可将一个数表示为:
$$N_{10} = \sum_{i=0}^{k-1} d_i \cdot \text{Base}^{\,i} \qquad\text{where } d_i \text{ are the digits of } \text{Value (x)}$$
实例演示
以十进制输入 129 为例。十六进制:
$$129 = 8 \times 16 + 1 \to \text{"81"}$$八进制:
$$129 = 2 \times 64 + 0 \times 8 + 1 \to \text{"201"}$$六进制:
$$3 \times 36 + 3 \times 6 + 3 = 129 \to \text{"333"}$$二进制:
$$128 + 1 \to \text{"10000001"}$$
进制转换参考表
下表列出了在五种进制系统中表示的常见非负整数:十进制(十进制),十六进制(十六进制),八进制(八进制),六进制(六进制)和二进制(二进制)。使用它来spot-check转换器,或记忆最常用的边界值,如15、16、255以及2的幂。
| 十进制(10) | 十六进制(16) | 八进制(8) | 六进制(6) | 二进制(2) |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 | 1 |
| 2 | 2 | 2 | 2 | 10 |
| 5 | 5 | 5 | 5 | 101 |
| 6 | 6 | 6 | 10 | 110 |
| 7 | 7 | 7 | 11 | 111 |
| 8 | 8 | 10 | 12 | 1000 |
| 10 | A | 12 | 14 | 1010 |
| 15 | F | 17 | 23 | 1111 |
| 16 | 10 | 20 | 24 | 10000 |
| 32 | 20 | 40 | 52 | 100000 |
| 64 | 40 | 100 | 144 | 1000000 |
| 100 | 64 | 144 | 244 | 1100100 |
| 255 | FF | 377 | 1103 | 11111111 |
注意255(8位字节可以容纳的最大值)在十六进制中是FF,在二进制中是八个1,这就是为什么一个十六进制字对可以干净地映射到一个字节。
定义与术语表
- 进制/基数
- 位置数字系统使用的不同数字符号的数量,也是从一列到下一列的位置值增加的因子。进制 \(b\) 使用数字 \(0\) 到 \(b-1\)。
- 十进制(十进制)
- 使用十个数字0-9的日常数字系统。每一列是10的幂:个位、十位、百位等。
- 十六进制(十六进制)
- 使用十六个符号0-9和A-F的十六进制系统。在计算中广泛使用,因为每个十六进制数字表示恰好四个二进制位(一个半字节)。
- 八进制(八进制)
- 使用数字0-7的八进制系统。每个八进制数字对应恰好三个二进制位;在早期计算中和Unix文件权限中历史上很常见。
- 六进制(六进制)
- 使用数字0-5的六进制系统。在实践中不太常见,但作为教学工具和在某些数学环境中很有用。
- 二进制(二进制)
- 仅使用数字0和1(位)的二进制系统。它是数字电子学的原生语言,其中每个位是开/关状态。
- 数字值(A-F = 10-15)
- 在大于10的进制中,字母将数字集合扩展到9以上。在十六进制中:A = 10,B = 11,C = 12,D = 13,E = 14和F = 15。
- 位置计数法
- 一种系统,其中数字的贡献取决于其位置。数字的值为 \(N_{10} = \sum_{i=0}^{k-1} d_i \cdot b^{\,i}\),其中 \(d_i\) 是位置 \(i\) 的数字(从右边的0开始计数),\(b\) 是进制。
- 最有效数字(MSD)
- 数字的最左边的数字,具有最高的位置值,对总体大小的贡献最大。
- 最不有效数字(LSD)
- 最右边的数字,占据个位位置(\(b^0\)),对值的贡献最小。
- 无符号64位范围
-
无符号64位整数可以表示从0到 \(2^{64}-1 = 18{,}446{,}744{,}073{,}709{,}551{,}615\) 的值,在十六进制中为
FFFFFFFFFFFFFFFF——十六个F数字。
常见问题
能换算像 12.5 这样的小数吗?不能,本工具仅支持整数。可以输入负数吗?不可以,取值范围从 0 开始。十六进制输入区分大小写吗?不区分——"ff"和"FF"都会被解析为 255,而输出的十六进制结果始终为大写。