16進制轉10進制
在「十六進位輸入」輸入或貼上十六進位數字,「十進位結果」會在你輸入的同時顯示。不論多長,結果都精準無誤,沒有64位元或2^53的上限。0x、# 等前綴,以及空格、逗號和底線都會被忽略,所以像 0xDE, 0xAD, 0xBE, 0xEF 這樣的資料可以直接貼上。轉換在你的瀏覽器裡進行,不會上傳或儲存任何內容。
16進位轉10進位的操作步驟
- 在「十六進位輸入」輸入或貼上你的十六進位數字,例如
0xFF或DE AD BE EF。 - 查看「十進位結果」。每按一個鍵就會更新,所以沒有轉換按鈕。
- 選擇「複製十進位」,就能把數字放進剪貼簿。按鈕會短暫顯示「已複製」作為確認。
- 數字很長時,開啟「以分隔符號分組數字」,結果就會每三位分成一組,分隔符號依頁面語言而定。這個選項預設是關閉的,所以不開啟的話,複製的數字只會有數字本身。
- 想重新開始,請選擇「清除」,有輸入內容時才會出現。
十六進制轉十進制:可以貼上的內容
空白、逗號、分號和底線會被當成分隔符號並移除。每一段都可以用 0x 或 # 開頭。大小寫都可以,開頭的 0 也沒有問題。
FF會讀成FF,結果是 2550x1F4會讀成1F4,結果是 500DE AD BE EF和0xDE, 0xAD, 0xBE, 0xEF都會讀成DEADBEEF,結果是 37359285590xBE_EF會讀成BEEF,結果是 48879#FF8800會讀成FF8800,結果是 16746496
其他任何字元,例如 G、負號、小數點或結尾的 h,都會顯示「G」不是十六進位數字。十六進位只使用 0-9 與 A-F。的通知,並附上找到的字元,「十進位結果」在你移除它之前會維持空白。
16進制轉10進制範例
FF= 255,8位元的最大值1F4= 50010000= 65536,也就是 16^47FFFFFFF= 2147483647,32位元有號數的最大值FFFFFFFF= 4294967295,32位元無號數的最大值20000000000000= 9007199254740992,也就是 2^53,一般 JavaScript 數字從這裡開始會遺失位數FFFFFFFFFFFFFFFF= 18446744073709551615,64位元無號數的最大值FFFFFFFFFFFFFFFFFFFF= 1208925819614629174706175,20位數,80位元
16進制轉10進制算法:手算步驟
十六進位是以 16 為基底。每一位的值是右邊那一位的 16 倍:從右邊數起,各位的權重是 1、16、256、4096,依此類推。把每個數字乘上它的權重再全部相加即可。9 之後的數用字母表示:A 是 10,B 是 11,C 是 12,D 是 13,E 是 14,F 是 15。
以 1A3F 為例:1 x 4096 + 10 x 256 + 3 x 16 + 15 x 1 = 4096 + 2560 + 48 + 15 = 6719。你可以在「十六進位輸入」輸入 1A3F 來驗證。數字超過幾位後手算就很慢,這時用 16進制轉10進制計算機會方便許多。
超大的十六進位數字:64位元、128位元以上
以一般浮點數為基礎的轉換工具,只能精準保存到 9007199254740991(2^53 - 1)的整數,超過之後最後幾位數會被四捨五入。這個頁面改用 JavaScript BigInt,所以64位元的雜湊片段、128位元的識別碼或256位元的金鑰,都能逐位轉成精準的十進位數值。
上限是 50,000 個十六進位數字。超過時,會有通知告訴你輸入了幾位,並請你縮短輸入內容。
這個轉換器不做的事
- 所有數值都以無號數讀取。沒有負數、二補數或有號數的讀法,所以
FFFFFFFF是 4294967295,不是 -1。 - 只轉換整數。像
1.8這種帶小數點的十六進位會被拒絕。 - 只做十六進位到十進位的單向轉換。若要從十進位轉成二進位,請使用二進位翻譯器。
#FF8800這類色碼會被當成一個數字,不會拆成紅、綠、藍。- 位元組會依你寫的順序讀取,不會被對調。
- 如果你的十六進位是編碼後文字的位元組而不是數字,可以用 Base64 轉換器處理 Base64 與文字之間的轉換。
常見問題
16進制怎麼轉10進制?
在「十六進位輸入」輸入或貼上數字,再查看「十進位結果」,輸入的同時就會更新。手算的話,把每個數字乘上 16 的次方(最右邊是 1),再把結果相加:1F4 就是 1 x 256 + 15 x 16 + 4 = 500。字母 A 到 F 代表 10 到 15。
0xFF 轉成十進位是多少?
是 255。F 是 15,所以 FF 等於 15 x 16 + 15 = 255,也是一個位元組能容納的最大值。前面的 0x 只是標示這是十六進位,會被忽略。
64位元或128位元這麼大的十六進位數字要怎麼轉成十進位?
直接貼上就可以。轉換使用 JavaScript BigInt,沒有64位元或 2^53 的上限,結果精準而不是四捨五入。FFFFFFFFFFFFFFFF(64位元的最大值)會得到 18446744073709551615,32個 F(128位元的最大值)則會得到 340282366920938463463374607431768211455。上限是 50,000 個十六進位數字。
可以輸入 0x 前綴、空格和逗號嗎?
可以。空格、逗號、分號和底線都會被當成分隔符號並移除,每一段也可以用 0x 或 # 開頭。所以 0xDE, 0xAD, 0xBE, 0xEF、DE AD BE EF 和 0xDEADBEEF 的結果都是 3735928559。大小寫和開頭的 0 都可以使用。
十六進位的色碼要怎麼轉成十進位?
貼上色碼即可,有沒有 # 都可以。#FF8800 會得到 16746496,因為這六位數會被讀成同一個數字。如果你想分別得到紅、綠、藍的數值,請把每兩位分開轉換:FF 是 255,88 是 136,00 是 0。
可以轉換有號的十六進位數字嗎?
不行。所有數值都以無號數讀取,所以 FFFFFFFF 會得到 4294967295,不是 -1。如果要把以 8 到 F 開頭的數值當成32位元有號數,請自己從結果減去 4294967296。輸入中有負號會被拒絕。
小端序(little-endian)的十六進位可以轉成十進位嗎?
數字會完全依照寫的樣子讀取,最左邊的位數是最高位,位元組也不會被重新排序。如果你的資料是小端序,請先把位元組順序反過來:78 56 34 12 會變成 12 34 56 78,轉換後是 305419896。
我貼上的十六進位數字會被上傳嗎?
不會。轉換在你的瀏覽器分頁裡進行,你輸入的內容不會被上傳或儲存。