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