基本電腦概論-數碼、文字碼

(一)數碼:
  1.BCD碼
  2.BCD碼變形
  3.Gary Code
(二文字碼:
  1.BCDIC
  2.EBCD
  3.ASCII
(三)錯誤檢查碼:
  1.同位元檢查碼
  2.CRC
  3.漢明碼


BCD碼:用4個bits來表示10近物中每一位的值
6種組合不用10~15
例:(23)10=(00100011)BCD

變形
8 4 -2 -1與BCD+3

格雷碼
適用於資料傳輸
10進位轉Gray Code
1.先將10進位轉2進為
頭補0 相同:0 相異:1

例:(5)10=(0101)2
00101=(0111)Gray

Gray Code轉10進位

最左邊留下,之後分別與下一位做e OR
例:(1100)Gray
1100
(1000)10
最左留下為1
1跟1為0
0跟0為0
0跟0為0

ASCII 8bits組成
A=(65)10=(41)16
a=(97)10=(61)16
0=(48)10=(30)16
0<A<a

RBCDIC編碼順序與ASCII相反

錯誤碼的偵測與更正
同位元檢查 偶同位元 傳送bit為1須為偶數  奇同位元 為1須為奇數
只能做error detect

CRC(Cycle Redundancy Check)

Ex :Assume that the sender sends the codeword 1101101 , please find
  1. the CRC code and
  2. Codeword for a generator polynomial x^3 + x^2 + 1
Step1. 取得餘數 & 被除數
所以,除數為 1101

被除數 : 1101101 (codeword) +最高系數是多少,就補多少個0(就是看最高次方是誰,就補多少個0,在這邊我們最高次方式3次方,所以就得補3個0。

所以,被除數為:1101101000
Step2:使用除法

使用說明: 一般的除法是減法,但是在CRC是需要用XOR,並且遵守下列三個規則。
  1. 使用XOR
  2. 一次下來三位
  3. 遇到第一位為1的時候,就用1去除,反之遇0則用0去除。
Ans :
A)110
B)1101101(codeword)+110(CRC) = 1101101110

漢明碼
具有更正錯誤的能力
先找2的n次方左至右 由大到小排列例8 4 2 1
縱軸找出為1的位元數
中間用2進位算出值 向下用偶同位檢查
最後為0則正確 不為0看2進位數字為多少 則就是錯誤的bit把1改成0









留言

這個網誌中的熱門文章

Python-相關係數矩陣實作(python-correlation matrix )

ASP.NET-後端將值傳給javascript

ASP.NET-FileUpload上傳後自動觸發button click(FileUpload upload auto trigger button click)