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

Java 進制轉換完全指南:二進制、八進制、十進制、十六進制互轉算法與負數表示

     編輯:Java 綜合教學

Java 進制轉換完全指南:二進制、八進制、十進制、十六進制互轉算法與負數表示

進制轉換是計算機基礎核心技能,也是 Java 面試高頻考點。本文系統整理十進制與二/八/十六進制互轉算法、位權對應表、加法運算演示、Java 中負數補碼表示,並提供代碼速查表。

一、十進制 ⇄ 二進制

十進制轉二進制:除 2 取餘,逆序排列

6 ÷ 2 = 3 余 0
3 ÷ 2 = 1 余 1
1 ÷ 2 = 0 余 1
→ 讀餘數從下往上:110

二進制轉十進制:按位權求和

110₂ = 1×2² + 1×2¹ + 0×2⁰ = 4 + 2 + 0 = 6₁₀
位權表:  1   1   0
       2² 2¹ 2⁰

二、快速轉換法:三/四位一組

八進制 (3 位一組)

二進制: 010 110 10 (補齊: 001 011 010)
八進制:  1   3   2  → 132₈

十六進制 (4 位一組)

二進制: 0101 1010
十六進制:  5    A  → 5A₁₆ (A=10, B=11, C=12, D=13, E=14, F=15)

三、二進制加法運算

  101 (5)
+ 100 (4)
------
 1001 (9)
規則: 0+0=0, 0+1=1, 1+0=1, 1+1=0 進 1

四、一字節範圍與無符號最大值

  • 8 位二進制:1111 1111 = 255₁₀ (無符號最大值)
  • Java byte 為有符號:-128 ~ 127

五、負數表示:二進制補碼

Java 整型採用 補碼 表示負數:

  1. 正數原碼 (最高位 0 為符號位)
  2. 取反 (按位非)
  3. 加 1
+6: 0000 0110
-6: 1111 1001 (取反) + 1 = 1111 1010
驗證: 0000 0110 + 1111 1010 = 1 0000 0000 (溢出丟棄最高位 = 0)

特徵:負數最高位 (符號位) 恆為 1。

六、Java 代碼速查表

// 十進制 → 其他進制字符串
Integer.toBinaryString(6)    // "110"
Integer.toOctalString(6)     // "6"
Integer.toHexString(6)       // "6"
Integer.toString(6, 2)       // "110" (指定基數)

// 其他進制字符串 → 十進制 int
Integer.parseInt("110", 2)   // 6
Integer.parseInt("6", 8)     // 6
Integer.parseInt("5A", 16)   // 90

// 格式化輸出
System.out.printf("%d -> 0b%s, 0%o, 0x%X%n", 90, 
    Integer.toBinaryString(90), 90, 90); 
// 90 -> 0b1011010, 0132, 0x5A

七、總結

掌握「除基取餘、按位權求和、三四位分組」三大核心技法,配合補碼負數表示原理,即可輕鬆應對所有進制轉換問題。Java 提供豐富的 Integer 靜態方法支援互轉,實際開發中優先使用庫方法,面試時需能手寫算法過程。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved