數字進位制轉換器

數字系統詳解:從二進位到羅馬數字及其他

數字系統是數學、計算機科學和人類歷史的基礎。從電腦的二進位邏輯到我們日常使用的十進位系統,理解不同的進位制能讓我們深入了解數據表示、程式設計和古代文明。本指南涵蓋了 20 多種數字系統,包括二進位、十六進位、羅馬數字和特殊編碼。

關於此工具
此轉換器可在 20 多種不同的數字系統之間轉換數字,包括:位置性基數(二進位、八進位、十進位、十六進位以及基數 2-36)、非位置性系統(羅馬數字)、專用電腦編碼(BCD、格雷碼)和歷史系統(六十進位)。每個系統在計算機科學、數學、古代歷史和現代工程中都有獨特的應用。

基本概念:數字系統如何運作

什麼是位置表示法?
位置表示法是一種表示數字的方式,其中每個數字的位置決定其值。在十進位(基數 10)中,最右邊的數字代表個位,其次是十位,然後是百位。每個位置都是基數的冪次方:365 = 3×10² + 6×10¹ + 5×10⁰。此原則適用於所有數字基數。

基數 (Radix)

任何數字系統的基礎

基數決定了使用多少個獨立數字以及位值如何增加。基數 10 使用數字 0-9。基數 2(二進位)使用 0-1。基數 16(十六進位)使用 0-9 加上 A-F。

在基數 8(八進位)中:157₈ = 1×64 + 5×8 + 7×1 = 111₁₀

數字集

在數字系統中代表值的符號

每個基數都需要從 0 到(基數-1)的獨立符號。二進位使用 {0,1}。十進位使用 {0-9}。十六進位擴展到 {0-9, A-F},其中 A=10...F=15。

十六進位中的 2F3₁₆ = 2×256 + 15×16 + 3 = 755₁₀

基數轉換

在不同系統之間轉換數字

轉換涉及使用位置值擴展到十進位,然後轉換到目標基數。從任何基數到十進位:總和為 數字×基數^位置。

1011₂ → 十進位:8 + 0 + 2 + 1 = 11₁₀

關鍵原則
  • 每個基數使用從 0 到(基數-1)的數字:二進位 {0,1}、八進位 {0-7}、十六進位 {0-F}
  • 位置值 = 基數^位置:最右邊是 基數⁰=1,其次是 基數¹,然後是 基數²
  • 基數越大 = 表示越緊湊:255₁₀ = 11111111₂ = FF₁₆
  • 計算機科學偏好 2 的冪:二進位 (2¹)、八進位 (2³)、十六進位 (2⁴)
  • 羅馬數字是非位置性的:V 無論在哪個位置都等於 5
  • 基數 10 的主導地位來自人類解剖學(10 根手指)

四種必要的數字系統

二進位 (基數 2)

電腦的語言 - 只有 0 和 1

二進位是所有數位系統的基礎。每個電腦操作都簡化為二進位。每個數字(位元)代表開/關狀態。

  • 數字:{0, 1} - 最小符號集
  • 一個位元組 = 8 位元,在十進位中表示 0-255
  • 2 的冪是整數:1024₁₀ = 10000000000₂
  • 加法簡單:0+0=0, 0+1=1, 1+1=10
  • 用於:CPU、記憶體、網路、數位邏輯

八進位 (基數 8)

使用數字 0-7 的緊湊二進位表示

八進位將二進位數字以三個為一組(2³=8)。每個八進位數字 = 正好 3 個二進位位元。

  • 數字:{0-7} - 不存在 8 或 9
  • 每個八進位數字 = 3 個二進位位元:7₈ = 111₂
  • Unix 權限:755 = rwxr-xr-x
  • 歷史:早期的迷你電腦
  • 現今較少見:十六進位已取代八進位

十進位 (基數 10)

通用的人類數字系統

十進位是全球人類溝通的標準。其基數 10 的結構是從用手指計數演變而來。

  • 數字:{0-9} - 十個符號
  • 對人類而言自然:10 根手指
  • 科學記號法使用十進位:6.022×10²³
  • 貨幣、測量、日曆
  • 電腦在內部轉換為二進位

十六進位 (基數 16)

程式設計師對二進位的簡寫

十六進位是緊湊表示二進位的現代標準。一個十六進位數字 = 正好 4 個位元 (2⁴=16)。

  • 數字:{0-9, A-F} 其中 A=10...F=15
  • 每個十六進位數字 = 4 個位元:F₁₆ = 1111₂
  • 一個位元組 = 2 個十六進位數字:FF₁₆ = 255₁₀
  • RGB 顏色:#FF5733 = 紅(255) 綠(87) 藍(51)
  • 記憶體位址:0x7FFF8A2C

快速參考:相同數字,四種表示法

了解相同的值在不同基數中如何呈現,對於程式設計至關重要:

十進位二進位八進位十六進位
0000
81000108
15111117F
16100002010
64100000010040
25511111111377FF
256100000000400100
1024100000000002000400

數學與替代基數

除了計算機科學的標準基數外,其他系統也有獨特的應用:

三進位 (基數 3)

數學上最有效率的基數

三進位使用數字 {0,1,2}。是表示數字最有效率的基數(最接近 e=2.718)。

  • 數學效率最佳
  • 平衡三進位:{-,0,+} 對稱
  • 模糊系統中的三元邏輯
  • 提議用於量子計算(三進位元)

十二進位 (基數 12)

十進位的實用替代方案

基數 12 的因數(2,3,4,6)比 10(2,5)多,簡化了分數。用於時間、打、英寸/英尺。

  • 時間:12 小時制時鐘、60 分鐘 (5×12)
  • 英制:12 英寸 = 1 英尺
  • 分數更容易:1/3 = 0.4₁₂
  • 十二進位學會倡導採用

二十進位 (基數 20)

以二十為單位計數

基數 20 系統是從計算手指加腳趾演變而來。馬雅、阿茲特克、凱爾特和巴斯克等例子。

  • 馬雅曆法系統
  • 法語:quatre-vingts (80)
  • 英語:'score' = 20
  • 因紐特傳統計數法

基數 36

最大字母數字基數

使用所有十進位數字(0-9)加上所有字母(A-Z)。緊湊且人類可讀。

  • URL 縮短器:緊湊的連結
  • 授權金鑰:軟體啟用
  • 資料庫 ID:可輸入的識別碼
  • 追蹤碼:包裹、訂單

古代與歷史數字系統

羅馬數字

古羅馬(西元前 500 年 - 西元 1500 年)

主宰歐洲 2000 年。每個符號都有固定值:I=1, V=5, X=10, L=50, C=100, D=500, M=1000。

  • 仍在使用:時鐘、超級盃、大綱
  • 沒有零:計算困難
  • 減法規則:IV=4, IX=9, XL=40
  • 有限:標準最多到 3999
  • 被印度-阿拉伯數字取代

六十進位 (基數 60)

古巴比倫(西元前 3000 年)

現存最古老的系統。60 有 12 個因數,使分數更容易。用於時間和角度。

  • 時間:60 秒/分鐘,60 分鐘/小時
  • 角度:360° 圓,60 弧分
  • 可除性:1/2, 1/3, 1/4, 1/5, 1/6 皆可整除
  • 巴比倫天文計算

計算機專用編碼

二進碼十進數 (BCD)

每個十進位數字編碼為 4 位元

BCD 將每個十進位數字(0-9)表示為 4 位元的二進位。392 變成 0011 1001 0010。避免了浮點數錯誤。

  • 金融系統:精確的十進位
  • 數位時鐘和計算機
  • IBM 主機:十進位單元
  • 信用卡磁條

格雷碼

相鄰值僅相差一個位元

格雷碼確保連續數字之間只有一個位元發生變化。對於類比-數位轉換至關重要。

  • 旋轉編碼器:位置感測器
  • 類比-數位轉換
  • 卡諾圖:邏輯簡化
  • 錯誤更正碼

實際應用

軟體開發

程式設計師每天都與多種基數打交道:

  • 記憶體位址:0x7FFEE4B2A000 (十六進位)
  • 位元旗標:0b10110101 (二進位)
  • 顏色代碼:#FF5733 (十六進位 RGB)
  • 檔案權限:chmod 755 (八進位)
  • 除錯:hexdump、記憶體檢查

網路工程

網路協定使用十六進位和二進位:

  • MAC 位址:00:1A:2B:3C:4D:5E (十六進位)
  • IPv4:192.168.1.1 = 二進位表示法
  • IPv6:2001:0db8:85a3:: (十六進位)
  • 子網路遮罩:255.255.255.0 = /24
  • 封包檢查:Wireshark 十六進位

數位電子學

二進位層級的硬體設計:

  • 邏輯閘:AND, OR, NOT 二進位
  • CPU 暫存器:64 位元 = 16 個十六進位數字
  • 組合語言:十六進位的操作碼
  • FPGA 程式設計:二進位流
  • 硬體除錯:邏輯分析儀

數學與理論

數論探索各種屬性:

  • 模數運算:各種基數
  • 密碼學:RSA、橢圓曲線
  • 碎形生成:康托爾集三進位
  • 質數模式
  • 組合數學:計數模式

精通基數轉換

任何基數 → 十進位

使用位置值展開:

  • 識別基數和數字
  • 從右到左分配位置 (0, 1, 2...)
  • 將數字轉換為十進位值
  • 相乘:數字 × 基數^位置
  • 將所有項相加

十進位 → 任何基數

重複除以目標基數:

  • 將數字除以目標基數
  • 記錄餘數(最右邊的數字)
  • 再次將商數除以基數
  • 重複直到商數為 0
  • 從下到上讀取餘數

二進位 ↔ 八進位/十六進位

將二進位位元分組:

  • 二進位 → 十六進位:以 4 位元為一組
  • 二進位 → 八進位:以 3 位元為一組
  • 十六進位 → 二進位:將每個數字擴展為 4 位元
  • 八進位 → 二進位:每個數字擴展為 3 位元
  • 完全跳過十進位轉換!

快速心算

常見轉換的技巧:

  • 2 的冪:記住 2¹⁰=1024, 2¹⁶=65536
  • 十六進位:F=15, FF=255, FFF=4095
  • 八進位 777 = 二進位 111111111
  • 加倍/減半:移動二進位
  • 使用計算機的程式設計師模式

有趣的事實

巴比倫的基數 60 沿用至今

每當你看時鐘,你都在使用一個有 5000 年歷史的巴比倫基數 60 系統。他們選擇 60 是因為它有 12 個因數,使分數計算更容易。

火星氣候探測者號災難

1999 年,NASA 價值 1.25 億美元的火星探測者號因單位轉換錯誤而摧毀——一個團隊使用英制單位,另一個使用公制單位。這是在精確性方面一個代價高昂的教訓。

羅馬數字中沒有零

羅馬數字沒有零也沒有負數。這使得高等數學幾乎不可能,直到印度-阿拉伯數字(0-9)徹底改變了數學。

阿波羅計畫使用八進位

阿波羅導引電腦以八進位(基數 8)顯示所有內容。太空人背誦了將人類送上月球的程式的八進位代碼。

十六進位中的 1670 萬種顏色

RGB 顏色代碼使用十六進位:#RRGGBB,其中每個值為 00-FF (0-255)。這在 24 位元全彩中提供了 256³ = 16,777,216 種可能的顏色。

蘇聯的三進位電腦

蘇聯研究人員在 1950-70 年代建造了三進位(基數 3)電腦。Setun 電腦使用 -1, 0, +1 邏輯而非二進位。最終二進位基礎設施獲勝。

轉換最佳實踐

最佳實踐

  • 了解上下文:二進位用於 CPU 操作,十六進位用於記憶體位址,十進位用於人類溝通
  • 記住關鍵對應:十六進位到二進位 (0-F)、2 的冪 (2, 4, 8, 16, 32, 64, 128, 256, 512, 1024)
  • 使用下標符號:1011₂、FF₁₆、255₁₀ 以避免歧義(15 可能是十五或二進位)
  • 將二進位數字分組:4 位元 = 1 個十六進位數字,3 位元 = 1 個八進位數字,以便快速轉換
  • 檢查有效數字:基數 n 只使用 0 到 n-1 的數字(基數 8 不能有 '8' 或 '9')
  • 對於大數:轉換為中間基數(二進位↔十六進位比八進位↔十進位更容易)

常見錯誤避免

  • 在程式語言中混淆 0b (二進位)、0o (八進位)、0x (十六進位) 前綴
  • 在二進位轉十六進位時忘記前導零:1010₂ = 0A₁₆ 而非 A₁₆ (需要偶數個半位元組)
  • 使用無效數字:八進位中的 8、十六進位中的 G - 會導致解析錯誤
  • 混合使用基數而未加註記:'10' 是二進位、十進位還是十六進位?務必指明!
  • 假設八進位↔十六進位可直接轉換:必須通過二進位(不同的位元分組)
  • 羅馬數字算術:V + V ≠ VV (羅馬數字不是位置性的)

常見問題

為什麼計算機科學使用二進位而非十進位?

二進位完美對應電子電路:開/關、高/低電壓。雙態系統可靠、快速且易於製造。十進位需要 10 個不同的電壓等級,會使電路變得複雜且容易出錯。

如何快速將十六進位轉換為二進位?

記住 16 個十六進位到二進位的對應(0=0000...F=1111)。獨立轉換每個十六進位數字:A5₁₆ = 1010|0101₂。從右邊將二進位以 4 個為一組反向轉換:110101₂ = 35₁₆。不需要十進位!

學習數字基數的實際用途是什麼?

對於程式設計(記憶體位址、位元運算)、網路(IP 位址、MAC 位址)、除錯(記憶體傾印)、數位電子學(邏輯設計)和安全(密碼學、雜湊)至關重要。

為什麼現在八進位比十六進位少見?

十六進位與位元組邊界對齊(8 位元 = 2 個十六進位數字),而八進位則不對齊(8 位元 = 2.67 個八進位數字)。現代電腦是以位元組為導向的,這使得十六進位更方便。只有 Unix 檔案權限讓八進位保持了相關性。

我可以直接在八進位和十六進位之間轉換嗎?

沒有簡單的直接方法。八進位以 3 個位元分組,十六進位以 4 個位元分組。必須通過二進位轉換:八進位→二進位 (3 位元)→十六進位 (4 位元)。例如:52₈ = 101010₂ = 2A₁₆。或者使用十進位作為中介。

為什麼羅馬數字仍然存在?

傳統和美學。用於正式場合(超級盃、電影)、區分(大綱)、永恆性(沒有世紀歧義)和設計優雅。計算不實用,但在文化上持續存在。

如果我在一個基數中使用無效數字會怎樣?

每個基數都有嚴格的規則。基數 8 不能包含 8 或 9。如果你寫 189₈,它是無效的。轉換器會拒絕它。程式語言會強制執行此規則:'09' 在八進位上下文中會導致錯誤。

有基數 1 嗎?

基數 1(一進位)使用一個符號(計數符號)。不是真正的位置性:5 = '11111'(五個標記)。用於原始計數但不實用。笑話:一進位是最簡單的基數 - 只要一直數下去就好!

完整工具目錄

UNITS 上可用的所有 71 個工具

篩選條件:
類別:

額外