toolfree

十六进位转十进位

在浏览器里把十六进位转成十进位,采用任意精度运算,所以 64 比特的十六进位值也能精确换算。

在你的浏览器中运行

请输入一个数字。

一般转换器坏掉的地方

大的数字通常就是用十六进位写下来的,所以十六进位转十进位正是精度损失会现形的地方。

一个 16 位数的十六进位值——也就是 64 比特——已经超过 JavaScript 数字能精确表示的范围。 0xFFFFFFFFFFFFFFFF18446744073709551615,而用 parseInt 做的转换器会给你 18446744073709552000,最后四位是凭空捏造的。

这里用的是任意精度整数,所以输入多长,答案都是精确的。

可以贴什么进来

0x 前缀可有可无,大小写没差,数字之间的底线或空白会被忽略——所以 0xDEAD_BEEFDEADBEEFde ad be ef 都是同一个值。

不是十六进位数字的字元会被指名回报,而不是被跳过。

把十六进位值当成有号数来读

十六进位出现的场合通常都跟宽度有关,所以转换也会在数值放得下的前提下,显示 8、16、32、 64 比特的二补数读法。

0xFF 当成无号字节是 255,当成有号的则是 −10x80000000 无号是 2147483648,当成 32 比特有号整数则是 −2147483648——那个著名的、没有对应正数的值。

颜色是另一回事

#1a2b3c 这样的十六进位颜色,是红、绿、蓝三个各自独立的字节值,不是一个数字。把它 当成单一数值换算会得到 1715004,算术上正确但毫无用处。那种需求请用颜色相关的工具。

没有任何上传

在这个页面里转换。