數字電路筆記1數制與編碼
數制與編碼
導論部分
數字技術的專業基礎課
?數字技術是現代「高科技」之一
?是互聯網的硬體基礎
?數字技術的應用領域:
–數字通信
–家用電器
–娛樂產品
–測量與控制
–軍工、航天
內容:
–數制與編碼
–邏輯代數基礎
–邏輯門電路
–組合電路的分析與設計
–觸發器
–常用時序電路
–時序電路的分析與設計
–脈衝波形的產生與整形
–數模、模數變換器
–可編程器件概述
–數字系統設計方法
二、八、十、十六進位數
八、十六進位到十進位的轉換
二--八進位之間的轉換
每三位二進位數對應一位八進位數。轉換時從小數點向左、向右每3位為一組,直接寫出對應的八進位數即可。小數點後最後一組要補足3位。
二--十六進位之間的轉換
四位二進位數對應一位十六進位數。轉換時從小數點向左、向右每4位為一組,直接寫出對應的十六進位數即可。小數點後最後一組要補足4位。
所謂符號數就是帶正、負號的數
?在數字系統中所有信息均由二進位碼錶示
?數的正、負也由二進位碼錶示
?常用的符號數表示法有三種:
–原碼錶示法
–反碼錶示法
–補碼錶示法
原碼錶示法
?用1位二進位數表示符號:0表示正數,1表示負數
?數的大小以該數的絕對值表示
?符號位通常放在最高位
?如某數字系統中用8位存儲器存放數據,其中最高位為符號位,其餘7位為數的絕對值
反碼(1?Complement)
?二進位數每一位上的數字不是0就是1
?定義0的反碼為1,1的反碼為0
?一個二進位數的反碼定義為將二進位數的每一位分別求反而得到的二進位碼
?例:N = 10011011
?則:(N)反=01100100
符號數的反碼錶示法
?用1位二進位數表示符號:0表示正數,1表示負數
?正數的大小用原碼錶示,而負數的大小則以該數的反碼錶示
?符號位通常放在最高位
?如某數字系統中用八位存儲器存放數據,其中最高位為符號位,其餘7位存放該數的反碼
(+127)10+1111111 01111111
(-127)10-111111110000000
補碼(2?Complement)
?設數N為有n位整數、m位小數的二進位數,則N的補碼定義為:
?(N)補.n=2n-N。
?由定義可知:N的補碼與N的大小有關,還與整數位數n有關;與小數位數無關
?設n=8, 則
?(11001)補.8=28-11001=11100111
?(11001.0101)補.8=28-11001.0101=11100110.1011
補碼的求法
?方法一:利用補碼的定義可以求一個數的補碼,但較為繁瑣一般不用
?方法二:將原碼補足n位後求反加1即得其補碼
–求(11001)在n=8時的補碼
–補齊8位:00011001
–求反:11100110
–加1:11100111
方法三:將原碼補足n位後,從右往左第一個1及其右邊的0不變,其餘各位求反即得N的補碼
?N=00100100=00100100
?(N)補.8=11011100
符號數的補碼錶示法
?用1位二進位數表示符號:0表示正數,1表示負數
?正數的大小用原碼錶示,而負數的大小則以該數的補碼錶示
?符號位通常放在最高位
?如某數字系統中用八位存儲器存放數據,其中最高位為符號位,其餘7位存放該數的補碼
?(+127)10+1111111 01111111
?(-127)10-1111111 10000001
利用補碼求符號數的加減運算
?如果將加數和被加數均以其補碼錶示,則只用加法運算器就可完成加減運算
?顯然這樣做可以節省硬體,降低生產成本
?運算時符號位與其它位一樣參與運算
?若符號位產生進位,則在結果中忽略該進位,不予考慮
利用補碼求符號數的加減運算
?設n=8,有兩個正數A=10011,B=1101。試用補碼求A+B,A-B,B-A,-A-B
?解:(A)補.8 =00010011, (B)補.8 =00001101 (-A)補.8=11101101, (-B)補.8=11110011
溢出只發生在兩個加數的符號位相同時
?在設計加法器時必須考慮溢出問題,並在溢出時給出報警信號,以提示運算結果出錯
當第n-1位(符號位)和第n-2位(最高數字位)不同時有進位(兩個負數相加時)或不同時無進位(兩個正數相加時)時有溢出發生
?利用這個原則,就可以設計出邏輯電路,判斷有無溢出發生
二-十進位編碼(BCD碼)
一般情況下均用四位二進位數對一位十進位數進行編碼
格雷(Gray)碼
ASCII符
檢錯碼和糾錯碼
奇偶校驗碼
推薦閱讀:
※FPGA時序約束 -- 學習筆記
※電路到底改不改?怎麼改既實用又省錢?
TAG:數字電路 |