跳轉到內容

模擬和數字轉換/有符號和無符號量

來自華夏公益教科書

二進位制數表示

[編輯 | 編輯原始碼]

任何數字都可以只使用“位”(數字 0 和 1)來表示;例如,二進位制數 1101 表示十三。這些位按順序排列,表示二的升冪。

最右邊的位稱為“最低有效位”(LSB),因為它表示 2 的最低次冪 1;最左邊的位稱為“最高有效位”(MSB),因為它表示 2 的最高次冪。

無符號數

[編輯 | 編輯原始碼]

無符號數以一種簡單的方式表示,LSB 在最右邊,MSB 在最左邊。無符號數總是正數(或零),因為它們沒有用於表示負數的符號。

有符號數

[編輯 | 編輯原始碼]

為了表示負數,我們需要實現有符號數。有兩種通用的方案來表示有符號數:符號大小或補碼。還有一些其他方案,例如補碼,但我們在這裡不討論它們。有關此主題的更多資訊,請參見數位電路的相關部分。

符號大小

[編輯 | 編輯原始碼]

符號大小數與無符號數相同,只是增加了一個“符號位”。如果符號位為 0,則該數為正;如果符號位為 1,則該數為負。

實現補碼所需的數字邏輯比符號大小表示要簡單得多。因此,大多數計算機以補碼格式儲存值。補碼遵循以下規則

  1. 一半的數字是正數,從 0 到 (N/2)−1,其中 N 是使用位數可以表示的值的數量(包括零)。如果我們有 n 位,則此值為
  2. 負數是透過反轉正數的位,然後加 1 來獲得的。

例如,如果我們在四位補碼數中擁有數字 5(0101),我們可以透過反轉該數字(1010)並加 1(1011)來獲得 -5 的表示。

要獲得負數的正值,我們逆轉該過程。

例如,4 位有符號數(3 個數據位 + 1 個符號位)是

 0111 = +7
 0110 = +6
 0101 = +5
 0100 = +4
 0011 = +3
 0010 = +2
 0001 = +1
 0000 = +0
 1111 = −1
 1110 = −2
 1101 = −3
 1100 = −4
 1011 = −5
 1010 = −6
 1001 = −7
 1000 = −8
問) 你不是幾頁前才告訴我 1101 代表十三嗎?

是的。它也可以代表很多其他東西。位 1101 形成一個位模式,可以解釋為任何東西。當我們談論無符號算術時,1101 在十進位制數中是“13”。當我們談論有符號算術時,1101 可能意味著 −3,如果我們正在進行 4 位有符號算術。

  • 在 16 位有符號算術中,1101 是 13
  • 在符號大小表示中,1101 是 −5。
  • 在補碼中,1101 是 −4
重要的是要注意,單個位模式可能具有不同的含義,具體取決於您的解釋方式。因此,保持解釋一致非常重要。

浮點數

[編輯 | 編輯原始碼]

另一種型別的二進位制數稱為“浮點數”。這些數字允許使用位來表示分數量。浮點數超出了本書的範圍,但請記住,某些取樣器以浮點格式輸出值。

進一步閱讀

[編輯 | 編輯原始碼]
華夏公益教科書