符號幅度表示法


符號幅度二進位制格式是最簡單的概念格式。在這種表示有符號數的方法中,最高有效位 (MSD) 具有額外的含義。

  • 如果 MSD 為 0,我們可以像對待任何普通的無符號整數一樣評估該數字。並且我們也將該數字視為正數。

  • 如果 MSD 為 1,則表示該數字為負數。

其他位表示數字的幅度(絕對值)。以下是一些有符號十進位制數及其在 SM 表示法中的等效值,假設字長為 4 位。

有符號十進位制
符號幅度
     +6
   0110
     -6
   1110
     +0
   0000
     -0
   1000
     +7
   0111
     -7
   1111

範圍

從上表可以看出,如果字長為 n 位,則可以表示的數字範圍為 -(2n-1 -1) 到 +(2n-1 -1)。下表顯示了字長和可以表示的 SM 數字範圍。

字長
SM 數字的範圍
4
-7 到 +7
8
-127 到 +127
16
-32767 到 +32767
32
-2147483647 到 +2147483647

請注意,位序列 1101 對應於無符號數 13,以及 SM 表示法中的數字 -5。其值僅取決於使用者或程式設計師如何解釋位序列。

加法

數字在計算機內部表示是為了使用該數字執行一些計算。計算機中最基本的算術運算就是加法運算。因此,計算機也可以稱為加法器。

當新增兩個符號相同的數字時,新增值並保留公共符號。

示例 1

使用計算機新增數字 (+5) 和 (+3)。假設這些數字使用 4 位 SM 表示法表示。

             111  <- carry generated during addition              0101 <- (+5) First Number            + 0011 <- (+3) Second Number              1000 <- (+8) Sum                 

讓我們再舉一個符號不同的兩個數字的例子。

示例 2

使用計算機新增數字 (-4) 和 (+2)。假設這些數字使用 4 位 SM 表示法表示。

              000 <- carry generated during addition

              1100 <- (-4) First number

           +  0010 <-(+2) Second Number

              1110 <- (-2) Sum

這裡,計算機給出了錯誤的答案 -6 = 1110,而不是給出正確的答案 -2 = 1010。

缺點

  • 0 有兩種表示法 (0000 和 1000),當計算機想要測試 0 結果時,這非常不方便。

  • 對於計算機來說,執行算術運算並不方便。

因此,由於上述提到的歧義,SM 表示法通常不用於在計算機內部表示有符號數。

更新於: 2020 年 6 月 27 日

10K+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.