有符號二進制數(shù)使用MSB作為符號位來顯示正數(shù)或負數(shù)的范圍
在數(shù)學中,正數(shù)(包括零)表示為無符號數(shù)。也就是說,我們不會在它們前面加上+ ve符號來表明它們是正數(shù)。
然而,在處理負數(shù)時我們會在數(shù)字前面使用-ve符號來顯示該值為負值且與正無符號值不同,帶符號二進制數(shù)也是如此。
但是,在數(shù)字電路中沒有規(guī)定因為數(shù)字系統(tǒng)使用以“0”和“1”表示的二進制數(shù)來操作,所以在數(shù)字上加上一個加號或一個減號。當在微電子學中一起使用時,這些“1”和“0”被稱為位(是BInary digiT的收縮),分為幾個范圍大小的數(shù)字,這些數(shù)字由通用名稱引用,例如 byte 或 word 。
我們之前也看到過一個8位二進制數(shù)(一個字節(jié))的值可以是0(00000000 2 )到255(11111111 2 ),即2 8 = 256個不同的位組合,形成一個8位字節(jié)。因此,例如無符號二進制數(shù),例如:01001101 2 = 64 + 8 + 4 + 1 = 77 10 十進制。但數(shù)字系統(tǒng)和計算機也必須能夠使用和操縱負數(shù)以及正數(shù)。
數(shù)學數(shù)字通常由符號和值(幅度)組成,其中符號表示是否數(shù)字為正數(shù)( + )或負數(shù),( - ),其值指示數(shù)字的大小,例如23,+ 156或-274。呈現(xiàn)數(shù)字是這種方式稱為“符號 - 幅度”表示,因為最左邊的數(shù)字可用于指示符號,其余數(shù)字表示數(shù)字的大小或值。
符號幅度表示法是最簡單的一種最常用的方法,用于表示零的任一側(cè)的正負數(shù)( 0 )。因此,簡單地通過改變相應(yīng)正數(shù)的符號來獲得負數(shù),因為每個正數(shù)或無符號數(shù)將具有相反的符號,例如,+ 2和-2,+ 10和-10等。
但是,如果我們所擁有的只是一堆零和零,我們?nèi)绾伪硎居蟹柕亩M制數(shù)。我們知道二進制數(shù)字或位只有兩個值,“1”或“0”,對我們來說很方便,一個符號也只有兩個值,即“+”或者“-”。
然后我們可以使用單個位來識別帶符號二進制數(shù)的符號,使其值為正值或負值。因此,為了表示正二進制數(shù)( + n )和負數(shù)( -n )二進制數(shù),我們可以在添加符號時使用它們。
對于帶符號的二進制數(shù),最高有效位(MSB)用作符號位。如果符號位為“0”,則表示該值為正值。如果符號位為“1”,則該值為負值。數(shù)字中的其余位用于表示通常的無符號二進制數(shù)格式方式的二進制數(shù)的大小。
然后我們可以看到Sign-and-Magnitude(SM)表示法存儲正數(shù)和通過將“n”個總比特分成兩部分的負值:符號為1比特,而純二進制數(shù)值為n-1比特。例如,十進制數(shù)53可以表示為8位帶符號二進制數(shù),如下所示。
正有符號二進制數(shù)

負號有符號二進制數(shù)

這里的缺點是在我們有一個全范圍 n位無符號二進制數(shù),我們現(xiàn)在有一個 n-1位帶符號的二進制數(shù),它給出了一個減少的數(shù)字范圍:
-2 (n-1)到+ 2 (n-1)
所以例如:如果我們有4位代表一個帶符號二進制數(shù),(符號位為1位,幅度位為為3位),那么我們可以用符號幅度表示法表示的實際數(shù)字范圍將是:
-2 (4-1) -1to + 2 (4-1) -1
<跨度> -2 (3) -1to + 2 (3) -1
<跨度> -7to + 7
以前,無符號4位二進制數(shù)的范圍是從 0 到 15 ,或 0 到 F (十六進制),我們現(xiàn)在的范圍縮小到-7到+7。因此,無符號二進制數(shù)沒有單個符號位,因此可以具有更大的二進制范圍,因為最高有效位(MSB)只是一個額外的位或數(shù)字而不是使用的符號位。
符號量形式的另一個缺點是,我們可以得到零,+ 0或0000 2 的正結(jié)果,零,-0或1000 2 。兩者都有效但哪一個是正確的。
有符號二進制數(shù)示例No1
使用符號幅度格式將以下十進制值轉(zhuǎn)換為帶符號的二進制數(shù):
| - 15 10 as 6-bit number | ? | 1 01111 2 |
| + 23 10 as 6-bit number | ? | 0 10111 2 |
| - 56 10 as一個8位數(shù)字 | ? | 1 0111000 2 |
| + 85 10 as 8-bit number | ? | 0 1010101 2 |
| - 127 10 as 8-bit number | ? | <跨度> 1 <跨度> 1111111 <子> 2 |
注意,對于4位,6位,8位,16位或32位有符號二進制數(shù),所有位必須有一個值,因此“0”用于填充之間的空格。最左邊的符號位和第一個或最高的值“1”。
二進制數(shù)的符號幅度表示是一種使用和理解的簡單方法,用于表示帶符號的二進制數(shù),因為我們使用這個系統(tǒng)所有的在數(shù)學中使用正常的十進制(基數(shù)為10)的數(shù)字。如果二進制數(shù)為負數(shù),則在其前面加“1”,如果為正數(shù),則在“0”加“0”。
然而,使用這種符號幅度方法可能導致兩種不同的位模式具有相同二進制值的可能性。例如, + 0 和 -0 分別為 0000 和 1000 作為帶符號的4位二進制數(shù)。所以我們可以看到使用這種方法可以有兩個零表示,一個正零( 0 000 2 ),也可以是負零( 1 000 2 )這可能會給計算機和數(shù)字系統(tǒng)帶來很大的復雜性。
對符號二進制文件的補充數(shù)字
一個補語或1的補語,因為它也被稱為,是另一種方法,我們可以用來表示帶符號二進制數(shù)的負二進制數(shù)系統(tǒng)。在一個補碼中,正數(shù)(也稱為非補數(shù))與符號幅度數(shù)一樣保持不變。
然而,負數(shù)表示為取一個的補數(shù)(反轉(zhuǎn),否定)無符號正數(shù)。由于正數(shù)始終以“0”開頭,因此補碼始終以“1”開頭以表示負數(shù)。
負二進制數(shù)的一個補碼是其正對應(yīng)的補碼,所以要取二進制數(shù)的一個補碼,我們需要做的就是依次改變每一位。因此,“1”的一個補碼是“0”,反之亦然,那么 10010100 2 的一個補碼就是 01101011 2 因為所有的1都變?yōu)?而0變?yōu)?。
在構(gòu)建數(shù)字算術(shù)或邏輯解碼器電路時,找到一個有符號二進制數(shù)的補碼的最簡單方法是使用逆變器。逆變器自然是補碼發(fā)生器,并且可以并聯(lián)使用以找到任何二進制數(shù)的1的補碼,如圖所示。
1使用逆變器補充

然后我們可以看到很容易找到二進制數(shù) N 的補碼,因為我們所需要做的只是改變1到0和0到1給我們一個 -N 等價物。也就像前面的符號幅度表示一樣,一個補碼也可以有n位表示法來表示以下范圍內(nèi)的數(shù)字: -2 (n-1) 和 +2 (n-1) - 1 。例如,一個補碼格式的4位表示可用于表示從-7到+7的十進制數(shù),其中兩個表示為零: 0000 (+0)和 1111 ( - 0)與以前相同。
使用一個補語的加法和減法
一個補語的一個主要優(yōu)點是加法和減法兩個二進制數(shù)。在數(shù)學中,減法可以以各種不同的方式實現(xiàn),如 A-B ,與 A +( - B)或 -B + A相同等。因此,減去兩個二進制數(shù)的復雜性可以通過簡單地使用加法來執(zhí)行。
我們在二進制加法器教程中看到,二進制加法遵循與正常加法相同的規(guī)則,除了在二進制中只有兩位(數(shù)字),最大的數(shù)字是“1”,(就像“9”是最大的十進制數(shù)字),因此二進制加法的可能組合如下:
| 0 | 0 | 1 | 1 | |
| + 0 | + 1 | + 0 | + 1 | |
| 0 | 1 | 1 | 1←0 | (0加一個進位1) |
當要添加的兩個數(shù)字都是正數(shù)時,總和 A + B ,它們可以通過直接總和加在一起(包括數(shù)字和位符號),因為當單個位加在一起時,“0 + 0”,“0 + 1”或“1 + 0”導致總和為“0”或“1”。這是因為當我們想要加在一起的兩個比特是奇數(shù)(“0”+“1”或“1 + 0”),結(jié)果是“1”。同樣,當要加在一起的兩個比特是偶數(shù)(“0 + 0”)或“1 + 1”)結(jié)果為“0”,直到你得到“1 + 1”,然后總和等于“0”加上進位“1”。讓我們看一個簡單的例子。
減去兩個二進制數(shù)
需要一個8位數(shù)字系統(tǒng)使用一個補碼相互減去以下兩個數(shù)字115和27.所以在十進制中這將是: 115- 27 = 88
首先,我們需要將兩個十進制數(shù)轉(zhuǎn)換為二進制數(shù),并通過添加前導零來確保每個數(shù)字具有相同的位數(shù),以產(chǎn)生一個8位數(shù)(字節(jié))。因此:
二進制
115 10 : 01110011 2
27二進制的 10 是: 00011011 2
現(xiàn)在我們需要找到第二個二進制的補碼編號,( 00011011 ),同時保留第一個數(shù)字( 01110011 )。因此,通過將所有1改為0并將0改為1,因此 00011011 的補碼等于 11100100 。
添加第一個數(shù)字和第二個數(shù)字的補碼給出:
| 01110011 |
| + 11100100 |
| 溢出→101010111 |
由于數(shù)字系統(tǒng)要使用8位,因此只有前8位用于提供求和的答案,我們只是忽略最后一位(第9位)。該位稱為“溢出”位。當最重要(最左側(cè))列的總和產(chǎn)生結(jié)轉(zhuǎn)時發(fā)生溢出。該溢出或進位可以完全忽略或傳遞到下一個數(shù)字部分以用于其計算。溢出表明答案是肯定的。如果沒有溢出,那么答案是否定的。
上面的8位結(jié)果是: 01010111 (溢出“1”取消)并將其從我們現(xiàn)在必須在一個補碼結(jié)果中添加“1”的實際答案的一個補碼答案:
| 01010111 |
| + 1 |
| 01011000 |
所以從115中減去27( 00011011 2 )的結(jié)果( 01110011 2 )使用二進制1的補碼給出答案: 01011000 2 或(64 + 16 + 8)= 88 10 。
然后我們可以看到使用One's Complement和添加過程可以相互減去有符號或無符號二進制數(shù)。二進制加法器(如TTL 74LS83或74LS283)可用于加或減兩個4位有符號二進制數(shù)或級聯(lián)在一起以生成帶有進位的8位加法器。
對符號的二進制補碼二進制數(shù)
兩個補語或2的補語因為它也被稱為,是另一個方法,如前一個符號幅度和一個補碼形式,我們可用于表示帶符號二進制數(shù)系統(tǒng)中的負二進制數(shù)。在二進制補碼中,正數(shù)與無符號二進制數(shù)完全相同。然而,負數(shù)由二進制數(shù)表示,當加到其對應(yīng)的正等效時,結(jié)果為零。
在二進制補碼形式中,負數(shù)是其正數(shù)的2的補碼。使用與以前基本相同的過程減去兩個數(shù)字 A-B = A +(B的2的補碼),兩個補碼是一個補碼+1。
主要與前一個補碼相比,二進制補碼的優(yōu)點是沒有雙零問題,而且生成有符號二進制數(shù)的二進制補碼要容易得多。因此,當數(shù)字以二進制補碼格式表示時,算術(shù)運算相對容易執(zhí)行。
讓我們看看使用二進制補碼從上面減去兩個8位數(shù)115和27,我們從上面記得二進制等價物是:
二進制
115 10 : 01110011 2
27二進制的 10 是: 00011011 2
我們的數(shù)字是8位長,然后有2 8 數(shù)字可用于表示我們的值,在二進制中這等于: 100000000 2 或 256 10 。那么27 10 的兩個補碼將是:
(2 8 ) 2 -00011011 = 100000000 -00011011 = 11100101 2
第二個負數(shù)的互補意味著減法變得更容易添加兩個數(shù),因此總和是: 115+(27的2的補碼):
01110011 + 11100101 =101011000 2
如前所述,第9個溢出位被忽略,因為我們只對前8位感興趣,因此結(jié)果是: 01011000 2 或(64 + 16 + 8)= 88 10 十進制,與之前相同。
有符號二進制數(shù)總結(jié)
我們已經(jīng)看到,可以使用最高有效位(MSB)作為符號位來表示負二進制數(shù)。如果對 n位二進制數(shù)進行了簽名,則最左邊的位用于表示留下 n-1位的符號來表示該數(shù)字。
例如,在4位二進制數(shù)中,這只留下3位來保存實際數(shù)字。但是,如果二進制數(shù)是無符號的,則所有位都可用于表示數(shù)字。
帶符號二進制數(shù)的表示通常稱為符號幅度表示法如果符號位為“0”,則數(shù)字為正。如果符號位為“1”,則該數(shù)字為負數(shù)。在處理二進制算術(shù)運算時,使用負數(shù)的補碼會更方便。
補充是表示負二進制數(shù)的另一種方法。這種替代編碼系統(tǒng)允許通過使用簡單加法減去負數(shù)。
由于正符號幅度數(shù)始終以零(0)開始,因此其補碼始終以一(1)開始表示負數(shù),如下表所示。
4位有符號二進制數(shù)比較
| Decimal | 簽名幅度 | 簽名一個補語 | 簽名二的補語 |
| 7 | 0111 | 0111 | 0111 |
| 6 | 0110 | 0110 | 0110 |
| 5 | 0101 | 0101 | 0101 |
| 4 | 0100 | 0100 | 0100 |
| 3 | 0011 | 0011 | 0011 |
| 2 | 0010 | 0010 | 0010 |
| 1 | 0001 | 0001 | 0001 |
| 0 | 0000 | 0000 | 0000 |
| -0 | 1000 | 1111 | - |
| -1 | 1001 | 1110 | 1111 |
| -2 | 1010 | 1101 | 1110 |
| -3 | 1011 | 1100 | 1101 |
| -4 | 1100 | 1011 | 1100 |
| -5 | 1101 | 1010 | 1011 |
| -6 | 1110 | 1001 | 1010 |
| -7 | 1111 | 1000 | 1001 |
二進制數(shù)的有符號補碼形式可以使用1的補碼或2的補碼。 1的補碼和二進制數(shù)的2的補碼很重要,因為它們允許表示負數(shù)。
2的補碼算法通常用于計算機處理負數(shù),唯一的缺點是如果我們想用簽名的二進制數(shù)格式表示負二進制數(shù),我們必須放棄以前的正數(shù)范圍。
-
二進制數(shù)
+關(guān)注
關(guān)注
0文章
12瀏覽量
7937
發(fā)布評論請先 登錄
二進制
二進制數(shù)與八進制數(shù)的相互轉(zhuǎn)換
二進制數(shù)與十六進制數(shù)的相互轉(zhuǎn)換
二進制編碼和二進制數(shù)據(jù)
二進制數(shù)的運算規(guī)則
二進制電平,什么是二進制電平
十進制數(shù)的二進制編碼
二進制數(shù)及其他
函數(shù)轉(zhuǎn)換BCD編碼二進制數(shù)為整型數(shù)
如何利用二進制數(shù)實現(xiàn)BCD碼的轉(zhuǎn)換
二進制數(shù)轉(zhuǎn)換成bcd碼
數(shù)字二進制計數(shù)器的設(shè)計和實現(xiàn)
正負號二進制數(shù)
評論