程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 匯編語言 >> 計算機體系結構(二) 碼制知識

計算機體系結構(二) 碼制知識

編輯:匯編語言

現在很多程序員,只是會用計算機編程,但是許多基礎的知識卻很薄弱。今天就跟大家說說碼制的問題。計算機對數據做的讀取、傳輸、運算、顯示等操作,都離不開碼制。常見的編碼方式有:原碼、反碼、補碼、移碼、BCD碼。我們一一說道。

【原碼】

表示:最高位為符號位(0表正,1表負),其余各位為數的絕對值。

舉例: [+11]原 =00001011  。 [-11]原 = 10001011 。

范圍:-127~+127

優點:乘除法操作比較簡單

缺點:0有2種表示方法, [+0]原 =00000000, [-0]原 =10000000 。加減法運算可能會出現溢出錯誤。

錯誤再現:(1)10 + (1)10 =  (0)10 ,用原碼表示的: (00000001)2 + (10000001)2 = (10000010)2 =  (-2)10

錯誤原因:原碼的符號位不能直接參與運算,否則可能會出現錯誤。

為了解決原碼的加減法缺陷,引入了一個新的編碼——反碼。

【反碼】

表示:由原碼轉換而來,正數跟原碼一致;負數,符號位不變,其余各位按位取反。

舉例: [+11]反 = [+11]原 =00001011 。 [-11]反 = 11110100 。

范圍:-127~+127

優點:符號位可以直接參與運算。減法可以變為加法運算。

缺點:0有2種表示方法,  [+0]反  =00000000,  [-0]反 =11111111

錯誤再現:(1)10 + (1)10 =  (0)10 ,使用反碼的結果是: (00000001)2 + (11111110)2 = (11111111)2 =  (-0)10

本欄目

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved