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

計算機內部數據表示原理:補碼、字符集與數字化核心邏輯

     編輯:Java 相關知識

核心原則:一切數字化

計算機只識別 0 和 1,指令、數據、圖片、文本、聲音……全部轉換為二進制位流存儲、傳輸、顯示。

整數表示:原碼、反碼、補碼

  • 符號位:最高位 0=正,1=負
  • 正數:原碼 = 反碼 = 補碼
  • 負數 (以 8 位為例,-8):
    • 原碼:1 0001000 (符號位 + 絕對值)
    • 反碼:1 1110111 (符號位不變,數值位取反)
    • 補碼:1 1111000 (反碼 + 1,計算機實際存儲形式)
  • 規律:補碼的補碼 = 原碼 (雙重取反還原)

為什麼用補碼?

  • 統一加減法電路:減法 = 加上負數補碼
  • 唯一表示 0:00000000 (原碼有 +0/-0 兩種)
  • 擴展位數簡單:符號位延伸 (正數補 0,負數補 1)

字符表示:編碼與字符集

  • 本質:字符 → 編號 (整數) → 二進制存儲
  • 字符集:編號規則表
    • ASCII:128 字符 (7 位),英文基礎
    • GB2312:簡體中文 6763 字符
    • BIG5:繁體中文
    • Unicode:統一碼,涵蓋全球字符,Java 內部默認使用
  • 字符可運算:運算的是編碼值 ('A' + 1 = 'B')
  • 顯示:需字體文件將編碼渲染為字形

小數存儲 (IEEE 754)

浮點數 = 符號位 + 指數位 + 尾數位,非定點表示,存在精度誤差 (如 0.1 無法精確表示)。

總結

理解「數字化」思想是編程進階基石:

  • 類型轉換本質是二進制位模式重新解讀
  • 位運算直接操作底層位模式
  • 編碼問題本質是字符集映射不一致
  • 浮點誤差源於二進制無法精確表示十進制小數
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved