亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

十進(jìn)制與BCD碼轉(zhuǎn)換的算法詳解

 更新時(shí)間:2021年09月01日 16:40:51   作者:guanjianhe  
BCD轉(zhuǎn)換成十進(jìn)制 BCD碼是指用二進(jìn)制來(lái)表示十進(jìn)制數(shù)的編碼,即用4位二進(jìn)制來(lái)表示一位十進(jìn)制數(shù),因此4位二進(jìn)制數(shù)表示最大的十進(jìn)制數(shù)9(1001),只取十六個(gè)數(shù)中的十個(gè)數(shù)(有別于8421碼)

手頭上在做的項(xiàng)目需要用到ds1302實(shí)時(shí)時(shí)鐘,ds1302讀出來(lái)的數(shù)據(jù)是BCD碼,需要轉(zhuǎn)換,寫(xiě)入也是。

BCD碼

BCD是指用二進(jìn)制來(lái)表示十進(jìn)制數(shù)的編碼,即用4位二進(jìn)制來(lái)表示一位十進(jìn)制數(shù),因此4位二進(jìn)制數(shù)表示最大的十進(jìn)制數(shù)9(1001),只取十六個(gè)數(shù)中的十個(gè)數(shù)。

比如:

BCD碼:0x99(153),該BCD碼轉(zhuǎn)換成十進(jìn)制是99.

算法原理

十進(jìn)制是逢十進(jìn)一,而十六進(jìn)制是逢十六進(jìn)一,它們之間的每次進(jìn)位差 6 6 ,所以一個(gè)十進(jìn)制數(shù)要轉(zhuǎn)換成BCD碼,要先算清多進(jìn)位的位數(shù),比如,十進(jìn)制99" role="presentation">進(jìn)位了 99/10=9 99 / 10 = 9 次,每次進(jìn)位和十六進(jìn)制進(jìn)位相比差 6 6 ,所以一共差了9×6=54" role="presentation">,即 99+54=153 99 + 54 = 153 (BCD)。BCD碼轉(zhuǎn)化成十進(jìn)制碼也一樣。

代碼

static uint8_t BCD2DEC(uint8_t bcd)  
{  
    return (bcd-(bcd>>4)*6);
}  

static uint8_t DEC2BCD(uint8_t dec)  
{  
    return (dec+(dec/10)*6);
} 

總結(jié)

本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • C++中this指針用法詳解及實(shí)例

    C++中this指針用法詳解及實(shí)例

    這篇文章主要介紹了C++中this指針用法詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • C語(yǔ)言學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)

    C語(yǔ)言學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • C語(yǔ)言中操作sqlserver數(shù)據(jù)庫(kù)案例教程

    C語(yǔ)言中操作sqlserver數(shù)據(jù)庫(kù)案例教程

    這篇文章主要介紹了C語(yǔ)言中操作sqlserver數(shù)據(jù)庫(kù)案例教程,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C++ TensorflowLite模型驗(yàn)證的過(guò)程詳解

    C++ TensorflowLite模型驗(yàn)證的過(guò)程詳解

    這篇文章給大家介紹了C++ TensorflowLite模型驗(yàn)證的過(guò)程,測(cè)試代碼,主要是RunInference()和read_file(),詳細(xì)操作過(guò)程跟隨小編一起看看吧
    2021-08-08
  • 如何把C++的源代碼改寫(xiě)成C代碼的方法

    如何把C++的源代碼改寫(xiě)成C代碼的方法

    這篇文章主要介紹了如何把C++的源代碼改寫(xiě)成C代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • C語(yǔ)言volatile關(guān)鍵字的作用與示例

    C語(yǔ)言volatile關(guān)鍵字的作用與示例

    這篇文章主要介紹了C語(yǔ)言volatile關(guān)鍵字的作用,volatile提醒編譯器它后面所定義的變量隨時(shí)都有可能改變,因此編譯后的程序每次需要存儲(chǔ)或讀取這個(gè)變量的時(shí)候,都會(huì)直接從變量地址中讀取數(shù)據(jù)
    2023-04-04
  • C++?plog日志使用方法介紹

    C++?plog日志使用方法介紹

    最近突然心血來(lái)潮,想學(xué)一下日志方面的操作。在網(wǎng)上找了很多日志相關(guān)的技術(shù),最終還是決定使用plog,小巧,快速,跨平臺(tái)
    2022-10-10
  • C++精要分析右值引用與完美轉(zhuǎn)發(fā)的應(yīng)用

    C++精要分析右值引用與完美轉(zhuǎn)發(fā)的應(yīng)用

    C++11標(biāo)準(zhǔn)為C++引入右值引用語(yǔ)法的同時(shí),還解決了一個(gè)短板,即使用簡(jiǎn)單的方式即可在函數(shù)模板中實(shí)現(xiàn)參數(shù)的完美轉(zhuǎn)發(fā)。那么,什么是完美轉(zhuǎn)發(fā)?它為什么是C++98/03 標(biāo)準(zhǔn)存在的一個(gè)短板?C++11標(biāo)準(zhǔn)又是如何為C++彌補(bǔ)這一短板的?別急,本節(jié)將就這些問(wèn)題給讀者做一一講解
    2022-05-05
  • C/C++ 獲取自身IP與域名片段的示例代碼

    C/C++ 獲取自身IP與域名片段的示例代碼

    這篇文章主要介紹了C/C++ 獲取自身IP與域名片段的示例代碼,幫助大家更好的理解和學(xué)習(xí)C/C++編程,感興趣的朋友可以了解下
    2020-10-10
  • C語(yǔ)言實(shí)現(xiàn)鏈棧的步驟

    C語(yǔ)言實(shí)現(xiàn)鏈棧的步驟

    鏈棧是棧的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu),鏈??梢杂脝捂湵淼念^插法實(shí)現(xiàn),本文主要講述了如何用c語(yǔ)言去實(shí)現(xiàn)鏈棧,感興趣的朋友可以了解下
    2021-05-05

最新評(píng)論