新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 第23節(jié):變量都轉(zhuǎn)換成unsigned long數(shù)據(jù)類型

        第23節(jié):變量都轉(zhuǎn)換成unsigned long數(shù)據(jù)類型

        作者: 時間:2016-11-22 來源:網(wǎng)絡(luò) 收藏
        從業(yè)十年,教你單片機(jī)入門 第23講:

        不管是以前講的加法,現(xiàn)在講的減法,還是未來講的乘法和除法,我都會強(qiáng)烈建議“請把所有參與運算的變量都轉(zhuǎn)成unsigned long類型”。unsigned long變量是三種數(shù)據(jù)類型中取值范圍最大的數(shù),取值范圍可達(dá)0到4294967295之間,用了此類型變量的運算,不會輕易導(dǎo)致運算溢出的問題。有細(xì)心讀者會問,萬一數(shù)據(jù)超過了4294967295怎么辦?答:可用BCD碼的數(shù)組方式進(jìn)行運算。這種數(shù)組運算的方法我在《從業(yè)將近十年,手把手教你單片機(jī)程序框架》里用了好幾個章節(jié)跟大家介紹過,初學(xué)者暫時不用深入學(xué)習(xí)它。

        本文引用地址:http://www.104case.com/article/201611/319832.htm

        變量轉(zhuǎn)換的方法是引入中間變量,有多少個需要轉(zhuǎn)換的變量就引入多少個中間變量,請看下面這個例子。

        轉(zhuǎn)換之前:

        unsigned int a;

        unsigned char x=195;

        unsigned long y=101;

        a=x-y;

        分析:上述公式用到3個變量,其中a和x都不是unsigned long變量,因此需要為它們分別引入中間變量t和s。

        轉(zhuǎn)換之后:

        unsigned int a;

        unsigned char x=195;

        unsigned long y=101;

        unsigned long t; //引入的中間變量,用來替代a

        unsigned long s; //引入的中間變量,用來替代x。

        s=0; //s在接收x原數(shù)據(jù)之前先把高位和低位全部清零。因為s和x的數(shù)據(jù)寬度不一。

        s=x; //接收x原數(shù)據(jù),相當(dāng)于把x轉(zhuǎn)換成unsigned long中間變量。

        t=s-y; //此處的t就默認(rèn)代表了變量a。

        本章雖短,但是此方法在實際項目中很重要,大家不可大意。

        下節(jié)預(yù)告:乘法運算的5種常見格式。



        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 襄汾县| 彭水| 喀什市| 资中县| 平顺县| 金坛市| 固阳县| 辛集市| 礼泉县| 德兴市| 迁安市| 射洪县| 虹口区| 湖南省| 吉隆县| 澳门| 隆尧县| 富源县| 大兴区| 永川市| 高雄县| 隆子县| 浦北县| 吉隆县| 蓝山县| 驻马店市| 金坛市| 三原县| 德州市| 右玉县| 八宿县| 金寨县| 丘北县| 清苑县| 潜山县| 平果县| 桐梓县| 肃宁县| 东港市| 武宁县| 芦山县|