工具
ZH

十进制转十六进制转换器

输入一个十进制数,立即得到对应的十六进制值,并自动列出除以 16 的完整计算过程。负数还可以显示为 8、16、32 或 64 位补码。

提示:每行输入一个数字,即可批量转换整个列表。

各进制表示

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

隐私保护:您的数据仅在浏览器中处理,绝不会被上传。

如何将十进制转换为十六进制

  1. 输入一个十进制数,或每行一个数字的列表。也支持负数和 0.75 这样的小数。
  2. 十六进制结果会立即显示,同时给出二进制和八进制值。分步计算表列出了每一次除以 16 的运算及其余数。
  3. 如需得到负数的十六进制补码,请勾选有符号(补码)并选择位宽:−1 在 8 位下是 FF,在 32 位下是 FFFFFFFF。

如何手算十进制转十六进制

使用“除 16 取余,逆序排列”的方法:

  1. 用这个数除以 16,记下余数(0–15)。
  2. 再用商除以 16,如此重复,直到商为 0。
  3. 把每个余数写成十六进制数字(10 = A,11 = B,12 = C,13 = D,14 = E,15 = F),然后从最后一个余数读到第一个。

示例:将 6719 转换为十六进制。

除法商余数
6719 ÷ 1641915 = F
419 ÷ 16263
26 ÷ 16110 = A
1 ÷ 1601

从下往上读出余数,得到 1A3F。验算:1 × 4096 + 10 × 256 + 3 × 16 + 15 = 6719。

十进制小数转十六进制

小数点后的部分不用除法,而是乘以 16:每次乘积的整数部分就是下一位十六进制数字(即“乘 16 取整,顺序排列”)。0.75 × 16 = 12,所以 0.75 的十六进制是 0.C。

有些小数在十六进制下永远除不尽。0.1 × 16 = 1.6,得到数字 1;接着 0.6 × 16 = 9.6,得到 9,之后 9 会无限重复,因此 0.1 = 0.1999…。转换器会把这类数值舍入到 12 位十六进制数字(0.19999999999A),并用 ≈ 标记。

负数转十六进制(补码)

计算机用 w 位存储负数 −n 时,实际存储的是 2ʷ − n。要得到它的位模式,只需把负数加上 2ʷ,再将结果转换为十六进制:−26 的 8 位补码是 256 − 26 = 230 = E6。

十进制8 位16 位32 位
−1FFFFFFFFFFFFFF
−2FEFFFEFFFFFFFE
−26E6FFE6FFFFFFE6
−12880FF80FFFFFF80

常见问题

255 的十六进制是多少?

255 的十六进制是 FF:255 ÷ 16 = 15 余 15,接着 15 ÷ 16 = 0 余 15,两个余数都写作 F。FF 是一个字节能表示的最大值。

如何在 Excel、Python 或 JavaScript 中将十进制转换为十六进制?

Excel 和 Google 表格:=DEC2HEX(255) 得到 FF。Python:format(255, 'X') 得到 FF,hex(255) 得到 0xff。JavaScript:(255).toString(16) 得到 ff。在 Excel 中,负数会以 10 位十六进制补码的形式输出:=DEC2HEX(-1) 的结果是 FFFFFFFFFF。

为什么 0.1 无法精确转换为十六进制?

因为 1/10 无法写成有限个 1/16、1/256 等分数之和,所以它的十六进制数字会无限循环(0.1999…),就像十进制中 1/3 = 0.333… 一样。由二分之一、四分之一、八分之一或十六分之一组成的小数则可以精确表示:0.5 的十六进制是 0.8,0.75 是 0.C。

可以转换非常大的数吗?

可以。转换器采用任意精度运算,因此 18446744073709551616(2⁶⁴)会精确地得到 10000000000000000,远远超出普通 JavaScript 数字 2⁵³ 的精度上限。