文本閱讀:
第1章聲音與數(shù)字11
12.5無加權二進制編碼
在一些應用中更喜歡采用無加權二進制編碼。余3碼、5中取2碼和格雷碼就是無加權碼制的一些例子。把8-4-2-1碼的每個碼字加3(0011)就得到了余3碼。換句話說,十進制數(shù)字d是用4位二進制數(shù)d+3表示的。通過這種方法,每個碼字都至少有一個1。5中在設計時讓每個有效碼字的5位二進制數(shù)中有且只有兩個為1。這種定義提供了一種簡單的檢查錯誤的方法,一個錯誤可能會導致1的數(shù)量多于或少于兩還可以定義出其他的無加權二進制碼。比如,讓所有碼字都至少包含一個1且最多包含兩個1。這能讓改變碼字時各邏輯狀態(tài)之間的跳變數(shù)量達到最少,這些跳變是在輸出電路中引發(fā)錯誤或失真的一種潛在因素。格雷碼有時也被稱為循環(huán)碼,在從一個狀態(tài)計數(shù)至下狀態(tài)時,格雷碼只有一位上的值發(fā)生變化。無加權碼的缺點是對應的十進制數(shù)值通常都
無法從二進制數(shù)值簡單地計算得出
12.62的補數(shù)
雖然用人類熟悉的方式定義二進制操作是讓人舒服的,但我們構建二進制系統(tǒng)并不是宜之計。因此,對數(shù)字及運算進行具體定義,使其能夠讓機器處理起來最容易,這樣做是更有意義的。比如,若采用補碼形式存儲二進制數(shù)字,則加法操作就能同時完成加法和減法運算,并且,若通過寄存器進行二進制數(shù)的存儲和處理,則取模計數(shù)系統(tǒng)通常是更可取的簡單的二進制算術運算在存儲計算結果時會遇到問題。例如,在位系統(tǒng)中,假設
數(shù)110與100相加。所得結果為1010。最左側位是加法過程產生的進位數(shù)字。不過,在位系統(tǒng)中,進位數(shù)字將被丟棄,所剩的結果將為010,這是有問題的,除非該系統(tǒng)能夠指明這里發(fā)生了一個溢出。使用取模運算可以很容易地調整這一結果溢出是任何
具有有限數(shù)位的系統(tǒng)所固有的。溢出需要我們在想法上進調整。
若可以使用無限數(shù)量的數(shù)位時,加法的操作,比如6加4可以形象化為把兩條長度為6和4直線段直接連在一起,從而得到一條長度為10的線段。不過,如能使用有限數(shù)量的
數(shù)位,那么最好是用一個圓周系統(tǒng)來進行形象化。比如,若要把60(1102)和410(1002)加起,則可以把兩段適當?shù)膱A弧連在一起,所得結果為21(0102)。所得的數(shù)字2是從和中減去8(即
后所得的余數(shù)。若數(shù)A除以N所得余數(shù)等于數(shù)B除聽得余數(shù),則稱
和B模N相等。例如,若A=12、A=20,則A=B(mod8),因為12/8=1+余數(shù)4,而20/8余數(shù)4。兩個余數(shù)相等,因此兩個數(shù)是模8相等的。模2運算在很多二進制應用中都有使用般來說,在對n位字進行數(shù)值操作時,會使用模2″運算
下載工具
意見反饋
捐助平臺