符號幅度表示法
符號幅度二進位制格式是最簡單的概念格式。在這種表示有符號數的方法中,最高有效位 (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 表示法通常不用於在計算機內部表示有符號數。
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP