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,算術上正確但毫無用處。那種需求請用顏色相關的工具。

沒有任何上傳

在這個頁面裡轉換。