純前端本地運算 · 保障您的資料隱私

Base Number 進位制轉換器

在 Binary(二進位)、Octal(八進位)、Decimal(十進位)、Hexadecimal(十六進位)之間即時互轉。 支援 Signed/Unsigned 模式、多種位元寬度、Overflow 檢查與位元屬性分析。

進位制轉換器 即時同步 · 多模式
Signed
Unsigned
Bit Width:
Binary (base-2)
Octal (base-8)
Decimal (base-10)
Hexadecimal (base-16)
Value exceeds the range for the current mode.
Range: -2,147,483,648 ~ 2,147,483,647 Min: -2,147,483,648 · Max: 2,147,483,647
位元屬性
0
Bit Length
0
Byte Size
-
Even
-
Power of 2
-
Prime
Programmer Mode — 字元對應
ASCII
Unicode

進位制轉換 常見問題 FAQ

Q1: 什麼是 Binary(二進位)?為什麼電腦使用二進位?

Binary(二進位)是一種以 2 為基底的數字系統,僅使用 01 兩個數字來表示所有數值。電腦之所以使用二進位,是因為其硬體元件(電晶體)天然具有兩種穩定狀態:通電(1)斷電(0)。這種二元狀態的設計使得數位電路設計簡單、可靠,且抗干擾能力強。例如,十進位的 42 在二進位中表示為 101010

Q2: 什麼是 Octal(八進位)和 Hexadecimal(十六進位)?

Octal(八進位)以 8 為基底,使用 0–7 八個數字。在 Unix/Linux 系統中,檔案權限常用八進位表示(如 0755)。

Hexadecimal(十六進位)以 16 為基底,使用 0–9 和 A–F 十六個符號。十六進位常用於記憶體位址、RGB 顏色值(如 #FF5733)、MAC 位址等。由於一位十六進位可表示 4 位二進位,它成為閱讀和書寫二進位最方便的替代方案。

Q3: 為什麼程式設計中常用十六進位而不是其他進位?

十六進位在程式設計中廣泛使用,主要有以下原因:
1. 與二進位的完美對應:一位十六進位正好對應 4 位二進位,轉換非常直觀。例如 0xF = 1111
2. 簡潔性:一個位元組(8 位元)只需 2 位十六進位就能表示(如 0xFF),而二進位需要 8 位。
3. 除錯與記憶體檢視:在記憶體傾印(Memory Dump)和 Hex Editor 中,十六進位是標準的顯示格式。
4. 顏色表示:網頁設計中的 #RRGGBB 格式就是十六進位的最佳應用範例。
相比之下,八進位因為 3 位一組的對應方式不如十六進位的 4 位一組方便,因此在現代程式設計中的使用頻率較低。

Q4: Signed 和 Unsigned 模式有什麼區別?

Unsigned(無號數):只能表示 0 和正整數。N 位元可表示的範圍為 0 到 2N−1。例如 8-bit Unsigned 的範圍是 0∼255。

Signed(有號數):可表示正數和負數。最常見的是採用二補數(Two's Complement)表示法。N 位元可表示的範圍為 −2N−1 到 2N−1−1。例如 8-bit Signed 的範圍是 −128∼127。

二補數的優點是加減法可以使用同樣的硬體電路,不需要區分正負號。二補數的計算方式為:將所有位元反相(0 變 1,1 變 0)後再加 1。例如 −1 在 8-bit 二補數中表示為 11111111

Q5: 什麼是 Overflow?什麼時候會發生?

Overflow(溢位)是指運算結果超出當前資料型別所能表示的範圍。例如:
• 在 8-bit Unsigned 模式中輸入 256,最大值為 255,因此發生 Overflow。
• 在 8-bit Signed 模式中輸入 128,最大值為 127,同樣發生 Overflow。
• 在 32-bit Signed 模式中輸入 2,147,483,648,超出範圍。

Overflow 在程式設計中是重要的安全性考量。整數溢位可能導致緩衝區溢位漏洞、數值繞回(如從最大值加 1 變成最小值)等問題。本工具會在發生 Overflow 時即時顯示紅色警告,幫助您避免這類錯誤。

Q6: 如何將一個十進位數字轉換為二進位?

將十進位轉換為二進位最常用的方法是除以 2 取餘法
1. 將數字除以 2,記錄餘數(0 或 1)。
2. 將商數繼續除以 2,記錄餘數。
3. 重複步驟 2 直到商數為 0。
4. 將所有餘數從最後一次到第一次反向排列。

範例:將十進位 42 轉為二進位
42 ÷ 2 = 21 餘 0
21 ÷ 2 = 10 餘 1
10 ÷ 2 = 5 餘 0
5 ÷ 2 = 2 餘 1
2 ÷ 2 = 1 餘 0
1 ÷ 2 = 0 餘 1
結果(反向排列):101010

Q7: 本工具會將我的資料上傳到伺服器嗎?

完全不會。本工具是純前端應用,所有的進位制轉換、位元計算和屬性分析都在您的瀏覽器中本地完成,沒有任何資料被傳送到伺服器。您可以放心使用任何敏感數值,即使離線狀態下也能正常運作。

進位制轉換教學:從二進位到十六進位的完整指南

什麼是 Binary(二進位)?

Binary(二進位)是電腦科學和數位電路的基石。它以 2 為基底,僅使用兩個數字 01 來表示所有數值。每個二進位數字稱為一個「位元(bit)」,而 8 個位元組成一個「位元組(byte)」。

二進位的運作原理與十進位類似,只是基底不同。在十進位中,每一位的權重是 10 的次方(個位 100、十位 101、百位 102⋯⋯);在二進位中,每一位的權重是 2 的次方(20、21、22⋯⋯)。

例如:101010 (二進位) = 1×25 + 0×24 + 1×23 + 0×22 + 1×21 + 0×20 = 32 + 0 + 8 + 0 + 2 + 0 = 42(十進位)。

什麼是 Octal(八進位)?

Octal(八進位)以 8 為基底,使用 0 到 7 共八個數字。在早期的電腦系統中,八進位曾被廣泛使用,因為 3 位二進位可以精確對應 1 位八進位(23 = 8)。

在現代,八進位最常見的應用場景是 Unix/Linux 檔案權限設定,例如 chmod 755 中的 755 就是一個八進位數字,表示檔案擁有者有讀寫執行權限(7),群組和其他使用者有讀和執行權限(5)。

在 JavaScript 和 Python 中,以 0o 前綴開頭的數字表示八進位(如 0o52 = 十進位 42)。

什麼是 Hexadecimal(十六進位)?

Hexadecimal(十六進位)以 16 為基底,使用 0–9 和 A–F 共十六個符號,其中 A=10、B=11、C=12、D=13、E=14、F=15。由於一位十六進位正好對應 4 位二進位(24 = 16),它是一種非常高效的二進位簡寫方式。

十六進位的常見應用包括:
記憶體位址:如 0x7FFF
網頁顏色:如 #FF6B35
MAC 位址:如 00:1A:2B:3C:4D:5E
機器碼和組合語言:指令和記憶體位址的標準表示法

在程式碼中,十六進位通常以 0x 前綴開頭,這是源自 C 語言的慣例,並被大多數現代語言繼承。

進位制轉換速查表(0–16)

Decimal Binary Octal Hex

為什麼程式設計常用十六進位?

程式設計師偏愛十六進位的主要原因可以歸結為兩個字:效率。一個位元組(8 位元)的內容用二進位需要寫 8 個數字(如 11111111),但用十六進位只需要 2 個(0xFF)。

更重要的是,十六進位和二進位之間的轉換幾乎不需要計算。只需記住 4 位二進位對應的十六進位值(0000=0 到 1111=F),就可以在任何時候快速轉換。這就是為什麼低階程式設計、除錯工具和網路協定分析都大量採用十六進位。

完成