RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

8421bcd碼運(yùn)算規(guī)則

PoisonApple ? 來源:網(wǎng)絡(luò)整理 ? 2018-03-02 09:53 ? 次閱讀

BCD代碼。Binary-Coded Decimal?,簡稱BCD,稱BCD碼或二轉(zhuǎn)十進(jìn)制代碼,亦稱二進(jìn)碼十進(jìn)數(shù)。是一種二進(jìn)制的數(shù)字編碼形式,用二進(jìn)制編碼的十進(jìn)制代碼。這種編碼形式利用了四個(gè)位元來儲存一個(gè)十進(jìn)制的數(shù)碼,使二進(jìn)制和十進(jìn)制之間的轉(zhuǎn)換得以快捷的進(jìn)行。這種編碼技巧,最常用于會(huì)計(jì)系統(tǒng)的設(shè)計(jì)里,因?yàn)闀?huì)計(jì)制度經(jīng)常需要對很長的數(shù)字串作準(zhǔn)確的計(jì)算。相對于一般的浮點(diǎn)式記數(shù)法,采用BCD碼,既可保存數(shù)值的精確度,又可免卻使電腦作浮點(diǎn)運(yùn)算時(shí)所耗費(fèi)的時(shí)間。此外,對于其他需要高精確度的計(jì)算,BCD編碼亦很常用。

由于十進(jìn)制數(shù)共有0、1、2、……、9十個(gè)數(shù)碼,因此,至少需要4位二進(jìn)制碼來表示1位十進(jìn)制數(shù)。4位二進(jìn)制碼共有2^4=16種碼組,在這16種代碼中,可以任選10種來表示10個(gè)十進(jìn)制數(shù)碼,共有N=16!/(16-10)!約等于2.9乘以10的10次方種方案。常用的BCD代碼列于末。

BCD碼的運(yùn)算法則

BCD碼的運(yùn)算規(guī)則:BCD碼是十進(jìn)制數(shù),而運(yùn)算器對數(shù)據(jù)做加減運(yùn)算時(shí),都是按二進(jìn)制運(yùn)算規(guī)則進(jìn)行處理的。這樣,當(dāng)將 BCD碼傳送給運(yùn)算器進(jìn)行運(yùn)算時(shí),其結(jié)果需要修正。

8421bcd碼運(yùn)算規(guī)則

修正的規(guī)則是:當(dāng)兩個(gè)BCD碼相加,如果和等于或小于 1001(即十進(jìn)制數(shù) 9),不需要修正;如果相加之和在 1010 到1111(即十六進(jìn)制數(shù) 0AH~0FH)之間,則需加 6 進(jìn)行修正;如果相加時(shí),本位產(chǎn)生了進(jìn)位,也需加 6 進(jìn)行修正。這樣做的原因是,機(jī)器按二進(jìn)制相加,所以 4 位二進(jìn)制數(shù)相加時(shí),是按“逢十六進(jìn)一”的原則進(jìn)行運(yùn)算的,而實(shí)質(zhì)上是 2 個(gè)十進(jìn)制數(shù)相加,應(yīng)該按“逢十進(jìn)一”的原則相加,16 與10相差 6,所以當(dāng)和超過 9或有進(jìn)位時(shí),都要加 6 進(jìn)行修正。下面舉例說明。

需要修正 BCD碼運(yùn)算值的舉例。

(1) 計(jì)算 5+8;

(2) 計(jì)算 8+8

解:(1) 將 5 和 8 以 8421 BCD輸入機(jī)器,則運(yùn)算如下:

0 1 0 1

+) 1 0 0 0

1 1 0 1 結(jié)果大于 9

+) 0 1 1 0 加 6 修正

1 0 0 1 1 13 的 BCD碼

結(jié)果是 0011,即十進(jìn)制數(shù) 3,還產(chǎn)生了進(jìn)位。5+8=13,結(jié)論正確。

(2)將8以8421 BCD輸入機(jī)器,則運(yùn)算如下:

1 0 0 0

+)1 0 0 0

1 0 0 0 0 結(jié)果大于9

+)0 1 1 0 加6修正

1 0 1 1 0 16的BCD碼

結(jié)果是0110,即十進(jìn)制的6,而且產(chǎn)生進(jìn)位。8+8=16,結(jié)論正確。

微機(jī)原理代碼: (AL=BCD 5,BL=BCD 8) 設(shè)AH=0,則

ADD AL,BL

AAA

結(jié)果為 AX=0104H,表示非壓縮十進(jìn)制數(shù),CF=1,AF=1,AH=1,AL=1

8421bcd碼運(yùn)算規(guī)則

使用AAA指令,可以不用屏蔽高半字節(jié),只要在相加后立即執(zhí)行AAA指令,便能在AX中得到一個(gè)正確的非壓縮十進(jìn)制數(shù)

壓縮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.

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 十進(jìn)制
    +關(guān)注

    關(guān)注

    0

    文章

    67

    瀏覽量

    13207
  • BCD碼
    +關(guān)注

    關(guān)注

    1

    文章

    52

    瀏覽量

    18291
  • 8421碼
    +關(guān)注

    關(guān)注

    1

    文章

    8

    瀏覽量

    4040
收藏 人收藏

    評論

    相關(guān)推薦

    常用編碼(BCD編碼、余3、格雷反射、奇偶校驗(yàn))

    常用編碼1、BCD編碼    例 寫出十進(jìn)數(shù)563.97D對應(yīng)的8421BCD?!   ?563.97D=0101 0110 0011 . 1001 01118421BCD   例 
    發(fā)表于 04-11 10:00

    什么是BCD、8421、余三、格雷

    ??!余三是在8421BCD的基礎(chǔ)上,把每個(gè)數(shù)的代碼加上0011(對應(yīng)十進(jìn)制數(shù)3)后得到的。格雷的編碼規(guī)則是相鄰的兩代碼之間只有一位二進(jìn)
    發(fā)表于 11-03 17:36

    quartusii 的warning和仿真問題

    高手!求助! 這是用兩片74LS83設(shè)計(jì)的8421BCD全加器,要求輸入為8421BCD,輸出也為8421BCD。為什么波形圖不正確呢?
    發(fā)表于 11-15 16:16

    【FPGA開源教程連載】第五章 BCD計(jì)數(shù)器設(shè)計(jì)與應(yīng)用

    格式均為代指8421。通過以上介紹將十進(jìn)制895轉(zhuǎn)換為BCD就是1001_1001_0101,同理若將BCD
    發(fā)表于 12-23 21:08

    想用兩片74LS153和一只數(shù)碼顯示四組8421BCD測試系統(tǒng)即用一只數(shù)碼管分別顯示四位十進(jìn)制數(shù)的個(gè)位 十位 百位 千位

    用兩片74LS153和一只數(shù)碼顯示四組8421BCD測試系統(tǒng)即用一只數(shù)碼管分別顯示四位十進(jìn)制數(shù)的個(gè)位 十位 百位 千位;請教各位大佬
    發(fā)表于 12-15 13:59

    C語言中十進(jìn)制轉(zhuǎn)8421BCD是用的什么方法?

    今天FPGA的同事問我C語言中十進(jìn)制轉(zhuǎn)8421BCD是用的什么方法?第一時(shí)間我在想除了除10取余還能有什么辦法?過了一會(huì)兒,突然想起有沒有辦法從移位上解決這個(gè)問題呢?于是乎就看到這個(gè)鏈接。然后就
    發(fā)表于 07-15 09:21

    8421BCD與二進(jìn)制原碼的相互轉(zhuǎn)換

    8421BCD與二進(jìn)制原碼的相互轉(zhuǎn)換。九層妖塔?起于壘土【藍(lán)橋杯】—{模板Template}—{Part7:DS18B20溫度傳感器}一、基本模板1、`頭文件`● 改編自國信長天藍(lán)橋杯官方藍(lán)皮書
    發(fā)表于 01-17 07:13

    在FPGA中實(shí)現(xiàn)一種二進(jìn)制轉(zhuǎn)BCD的電路設(shè)計(jì)

    字邏輯設(shè)計(jì)課程中,我們已經(jīng)學(xué)過了BCD的相關(guān)知識,它用4位二進(jìn)制數(shù)來表示1位十進(jìn)制數(shù)中的09,是二進(jìn)制編碼的十進(jìn)制代碼,常見的BCD8421B
    發(fā)表于 07-12 16:41

    8421同步十進(jìn)制遞增計(jì)數(shù)器

    8421同步十進(jìn)制遞增計(jì)數(shù)器
    發(fā)表于 09-24 11:09 ?6523次閱讀
    <b class='flag-5'>8421</b><b class='flag-5'>碼</b>同步十進(jìn)制遞增計(jì)數(shù)器

    常用編碼(BCD編碼、余3、格雷反射、奇偶校驗(yàn))

    常用編碼1、BCD編碼    例 寫出十進(jìn)數(shù)563.97D對應(yīng)的8421BCD?!   ?563.97D=0101 0110 0011 . 1001 01118421BCD
    發(fā)表于 09-19 11:23 ?9471次閱讀

    8421轉(zhuǎn)換十進(jìn)制程序

    8421是中國大陸的叫法,8421BCD代碼中最常用的一種。在這種編碼方式中每一位二值代碼的1都是代表一個(gè)固定數(shù)值,把每一位的1代表的
    的頭像 發(fā)表于 03-02 09:05 ?3.3w次閱讀
    <b class='flag-5'>8421</b><b class='flag-5'>碼</b>轉(zhuǎn)換十進(jìn)制程序

    8421bcd轉(zhuǎn)換二進(jìn)制

    算機(jī)內(nèi)毫無例外地都使用二進(jìn)制數(shù)進(jìn)行運(yùn)算,但通常采用8進(jìn)制和十六進(jìn)制的形式讀寫。對于計(jì)算機(jī)技術(shù)專業(yè)人員,要理解這些數(shù)的含義是沒問題,但對非專業(yè)人員卻不那么容易的。由于日常生活中,人們最熟悉的數(shù)制是十進(jìn)制,因此專門規(guī)定了一種二進(jìn)制的十進(jìn)制
    的頭像 發(fā)表于 03-02 09:20 ?7.2w次閱讀
    <b class='flag-5'>8421bcd</b><b class='flag-5'>碼</b>轉(zhuǎn)換二進(jìn)制

    余38421BCD的轉(zhuǎn)換_8421BCD轉(zhuǎn)換成余3

    二進(jìn)制編碼的十進(jìn)制數(shù),簡稱BCD。這種方法是用4位二進(jìn)制的組合代表十進(jìn)制數(shù)的0,1,2,3,4,5,6 ,7,8,9 十個(gè)數(shù)符。由8421
    的頭像 發(fā)表于 03-02 09:38 ?19.3w次閱讀
    余3<b class='flag-5'>碼</b>至<b class='flag-5'>8421BCD</b><b class='flag-5'>碼</b>的轉(zhuǎn)換_<b class='flag-5'>8421BCD</b><b class='flag-5'>碼</b>轉(zhuǎn)換成余3<b class='flag-5'>碼</b>

    8421BCD轉(zhuǎn)換成5421BCD

    5421BCD,是二—十進(jìn)制代碼(BCD)的一種;二—十進(jìn)制代碼(BCD)的一種;5421
    的頭像 發(fā)表于 03-02 13:48 ?8w次閱讀
    <b class='flag-5'>8421BCD</b><b class='flag-5'>碼</b>轉(zhuǎn)換成5421<b class='flag-5'>BCD</b><b class='flag-5'>碼</b>

    什么是BCD

    在使用RTC外設(shè)時(shí),我們常常會(huì)接觸 BCD的概念,同時(shí)魚鷹在介紹 USB 協(xié)議版本時(shí)也說了 BCD ,那么什么是 BCD
    的頭像 發(fā)表于 09-07 09:10 ?1.6w次閱讀
    RM新时代网站-首页