首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 組合語言

計算機系統原理(七)整數表示方式精解:無符號編碼與補碼編碼

     編輯:組合語言

C 語言整數類型與範圍

32/64 位系統下各整數類型範圍對比,C 標準最小範圍要求:

無符號編碼

w 位無符號數:B2U_w(x) = Σ x_i·2^i。範圍 [0, 2^w-1],雙射映射。

補碼編碼

w 位補碼:B2T_w(x) = -x_{w-1}·2^{w-1} + Σ_{i=0}^{w-2} x_i·2^i。最高位為符號位。範圍 [-2^{w-1}, 2^{w-1}-1],亦為雙射。

兩種編碼互轉

關係式:B2U_w(x) = x_{w-1}·2^w + B2T_w(x)。推導得:

  • 補碼非負 (x≥0) → 無符號同值
  • 補碼負數 (x<0) → 無符號值 = x + 2^w

對應關係圖:

小結

無符號與補碼是整數表示的兩大基石,理解其映射與轉換至關重要。

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