新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > KeilC51數據類型轉換

        KeilC51數據類型轉換

        作者: 時間:2016-11-10 來源:網絡 收藏
        1、/*06-03-31在KEIL中調試發現*/
        例1:
        ......
        unsigned long int b;
        unsigned int x;
        x=968;
        b=100*x;
        b=96800-65536;
        例2:
        ......
        unsigned long int b,x;
        x=968;
        b=100*x;
        b=96800;
        例3:
        ......
        unsigned long int b;
        unsigned int x;
        x=968;
        b=(unsigned long int)(x)*100;
        b=96800;
        結論:在使用KEIL C51中進行復雜數學運算時,特別是在運算表達式左右兩邊的數據類型不同時,一定要注意變量(寄存器)字節長度變化問題,必要是要進行強制類型轉化,以免造成數據溢出。如上例1中,數據就發生了溢出;而例2和例3則不會發生這種現象,但例2編譯后生成的代碼要遠多于例3,因此一般宜使用例3方法,即,在可能發生數據溢出時,進行強制類型轉化。


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 林甸县| 大港区| 定远县| 行唐县| 邮箱| 会同县| 青铜峡市| 湘潭市| 榕江县| 察哈| 丹阳市| 琼结县| 祁连县| 包头市| 广灵县| 沽源县| 尖扎县| 丘北县| 从化市| 汨罗市| 故城县| 页游| 象州县| 新蔡县| 汾西县| 建水县| 龙井市| 平谷区| 民权县| 伊通| 开封县| 山东| 西华县| 喀什市| 陆良县| 渭南市| 平乡县| 昔阳县| 杭锦旗| 松原市| 抚松县|