引用
引用第3樓竹風涼于2009-01-09 22:52發表的  :
BCD 碼大于9時是非法數字,計算機只認二進制,不轉換,
運算會出錯的
BCD碼大于9?什么意思
BCD的每一位有大于9的嗎
BCD碼也叫8421碼就是將十進制的數以8421的形式展開成二進制,大家知道十進制是0~9十個數組成,著十個數每個數都有自己的8421碼: 
  0=0000 
  1=0001 
  2=0010 
  3=0011 
  4=0100 
  5=0101 
  6=0110 
  7=0111 
  8=1000 
  9=1001 
  舉個例子: 
  321的8421碼就是 
  3 2 1 
  0011 0010 0001
  原因:0011=8x0+4x0+1x2+1x1=3 0010=8x0+4x0+2x1+1x0=2. 0001=8x0+4x0+2x0+1x1=1
  具體:
  bcd碼是十位二進制碼, 也就是將十進制的數字轉化為二進制, 但是和普通的轉化有一點不同, 每一個十進制的數字0-9都對應著一個四位的二進制碼,對應關系如下: 十進制0 對應 二進制0000 ;十進制1 對應二進制0001 ....... 9 1001 接下來的10就有兩個上述的碼來表示 10 表示為00010000 也就是BCD碼是遇見1001就產生進位,不象普通的二進制碼,到1111才產生進位10000
  舉例:
  某二進制無符號數11101010,轉換為三位非壓縮BCD數,按百位、十位和個位的順序表示,應為<U>__C</U>__。 
  A.00000001 00000011 00000111 B. 00000011 00000001 00000111
  C.00000010 00000011 00000100 D. 00000011 00000001 00001001
  解:(1)11101010轉換為十進制:234
  (2)按百位、十位和個位的順序表示,應為<U>__C</U>__。 
  附注:壓縮BCD碼與非壓縮BCD碼的區別—— 壓縮BCD碼的每一位用4位二進制表示,一個字節表示兩位十進制數。例如10010110B表示十進制數96D;非壓縮BCD碼用1個字節表示一位十進制數,高四位總是0000,低4位的0000~1001表示0~9.例如00001000B表示十進制數8.