首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

進制轉換完全指南:二/八/十/十六進制互轉算法與竅門

     編輯:Java 相關知識

進制基礎概念

  • 基數:基本數字個數。n 進制基數為 0~n-1 (二進制 0/1,十六進制 0-9/A-F)
  • 進位規則:滿 n 進 1,借 1 當 n (十進制滿十進一,二進制滿二進一)
  • 表示法:[數值]進制,如 [1011]₂

二進制計數演示

十進制: 0  1  2  3  4  5  6  7  8   9
二進制: 0  1 10 11 100 101 110 111 1000 1001

二進制基本運算

運算規則
加法0+0=0, 0+1=1, 1+0=1, 1+1=10 (進位)
減法0-0=0, 1-0=1, 1-1=0, 0-1=-1 (借位)
乘法只有 1×1=1,其餘 0
除法1/1=1,其餘無意義/0

十進制 ⇄ 二進制轉換

十進制整數 → 二進制:除二取余法 (通用)

13 ÷ 2 = 6 ... 1 (低位)
 6 ÷ 2 = 3 ... 0
 3 ÷ 2 = 1 ... 1
 1 ÷ 2 = 0 ... 1 (高位)
結果: 1101

計算器法

Windows 計算器 → 科學型 → 輸入十進制 → 點「二進制」單選鈕。

經驗法 (熟練者)

記住 20~10:1,2,4,8,16,32,64,128,256,512,1024
例:65 = 64 + 1 → 1000001

十進制小數 → 二進制:乘二取整法

0.25 × 2 = 0.5 → 0 (高位)
0.5  × 2 = 1.0 → 1 (低位)
結果: 0.01

注意:部分十進制小數無法有限二進制表示 (精度誤差來源)。

二進制 → 十進制:按權展開求和

整數: [1011]₂ = 1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 8+0+2+1=11
小數: [0.1101]₂ = 1×2⁻¹ + 1×2⁻² + 0×2⁻³ + 1×2⁻⁴ = 0.5+0.25+0+0.0625=0.8125

二進制 ⇄ 八/十六進制 (分組速轉)

轉換整數部分小數部分
二→八右向左三位一組,不足左補0左向右三位一組,不足右補0
二→十六右向左四位一組,不足左補0左向右四位一組,不足右補0

示例

二進制 10111
→ 八進制: 010 111 = 2 7 → [27]₈
→ 十六進制: 0001 0111 = 1 7 → [17]₁₆

二進制小數 0.10111
→ 八進制: 101 110 = 5 6 → [0.56]₈
→ 十六進制: 1011 1000 = B 8 → [0.B8]₁₆

程序中進制寫法

  • 八進制:0 開頭 (如 016)
  • 十六進制:0x 開頭 (如 0xAF)
  • 二進制:Java 7+ 支持 0b (如 0b1011)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved