1. 程式人生 > 其它 >2.1 數值與編碼

2.1 數值與編碼

2.1.1 進位計數制度及其相互轉化

為什麼選取二進位制:方便對應物理狀態,如高電平、低電平

  1. 進位計數法
  2. 不同進位制數之間的相互轉換
    1. 二進位制轉化為八進位制和十六進位制
    2. 任意進位制轉化為十進位制
    3. 十進位制轉化為任意進位制
      • 除基取餘法(整數部分的轉換)
      • 乘積取整法(小數部分的轉換)

2.1.2 真值和機器數

帶有“+”和“-”的數稱為真值
用“0”表示正,“1”表示負,這種符號“數字化”稱為機器數

2.1.3 BCD碼

二進位制編碼的十進位制數

  1. 8421碼
    如果兩個8421碼相加之和小於或等於(1001)2,即(9)10,則不需要修正;如果相加大於或等於(1001)2,即(10)10,則需要加6,即(0110)8421
  2. 餘3碼
    是一種無權碼,在8421碼上加(0011)2形成的
  3. 2421碼
    和8421碼類似
    特點是大於等於5的4位二進位制中最高位為1,小於等於5的最高位為0。

2.1.4 字元與字串

字元編碼ASCII碼

漢字表示和編碼

字串的存放

小端模式:先儲存低位位元組、後儲存高位位元組
大端模式:先儲存高位位元組、後儲存低位位元組
大端順著寫,小端逆著寫

2.1.5 校驗碼

任意兩個合法碼字之間最少變化的二進位制位數(兩個合法碼字對應位數上數字的不同位的個數),稱為資料校驗碼的碼距

1. 奇偶校驗碼

奇校驗:整個校驗碼(有效資訊位和校驗位)中“1”的個數位為奇數
偶校驗:整個校驗碼(有效資訊位和校驗位)中“1”的個數位為偶數

2.海明校驗碼

n + k <= 2^k - 1
n為有效資訊的位數,k為校驗位的位數

  1. 確定海明嗎的位數
  2. 確定校驗位的分佈
  3. 分組,以形成校驗的關係
  4. 校驗位取值
  5. 海明碼的校驗原理

3.迴圈冗餘校驗(CRC)碼

  1. 確定資訊位、校驗位以及生成項式對應的二進位制碼
  2. 移位
  3. 相除(模2除法),產生餘數
  4. 檢錯和結錯