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