BCD碼的學(xué)習(xí)
在我們?nèi)粘Ia(chǎn)生活中用的最多的數(shù)字是十進(jìn)制數(shù)字,而單片機(jī)系統(tǒng)的所有數(shù)據(jù)本質(zhì)上都是二進(jìn)制的,所以聰明的前輩們就給我們創(chuàng)造了BCD碼。BCD碼(Binary-Coded Decimal)亦稱(chēng)二進(jìn)碼十進(jìn)制數(shù)或二-十進(jìn)制代碼。用4位二進(jìn)制數(shù)來(lái)表示1位十進(jìn)制數(shù)中的0~9這10個(gè)數(shù)字。是一種二進(jìn)制的數(shù)字編碼形式,用二進(jìn)制編碼的十進(jìn)制代碼。BCD碼這種編碼形式利用了四個(gè)位元來(lái)儲(chǔ)存一個(gè)十進(jìn)制的數(shù)碼,使二進(jìn)制和十進(jìn)制之間的轉(zhuǎn)換得以快捷的進(jìn)行。我們前邊講過(guò)十六進(jìn)制和二進(jìn)制本質(zhì)上是一回事,十六進(jìn)制僅僅是二進(jìn)制的一種縮寫(xiě)形式而已。而十進(jìn)制的一位數(shù)字,從0到9,最大的數(shù)字就是9,再加1就要進(jìn)位,所以用4位二進(jìn)制表示十進(jìn)制,就是從0000到1001,不存在1010、1011、1100、1101、1110、1111這6個(gè)數(shù)字。BCD碼如果到了1001,再加1的話(huà),數(shù)字就變成了0001 0000這樣的數(shù)字了,相當(dāng)于用了8位的二進(jìn)制數(shù)字表示了2位的十進(jìn)制數(shù)字。
BCD碼的應(yīng)用還是非常廣泛的,比如我們這節(jié)課要學(xué)的實(shí)時(shí)時(shí)鐘,日期時(shí)間在時(shí)鐘芯片中的存儲(chǔ)格式就是BCD碼,當(dāng)我們需要把它記錄的時(shí)間轉(zhuǎn)換成可以直觀顯示的ASCII碼時(shí)(比如在液晶上顯示),就可以省去一步由二進(jìn)制的整型數(shù)到ASCII的轉(zhuǎn)換過(guò)程,而直接取出表示十進(jìn)制1位數(shù)字的4個(gè)二進(jìn)制位然后再加上0x30就可組成一個(gè)ASCII碼字節(jié)了,這樣就會(huì)方便的多,在后面的實(shí)際例程中將看到這個(gè)簡(jiǎn)單的轉(zhuǎn)換。
編輯:admin 最后修改時(shí)間:2018-05-08