新聞中心

        EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > 單片機(jī)C語言知識點全攻略(三)

        單片機(jī)C語言知識點全攻略(三)

        作者: 時間:2012-11-13 來源:網(wǎng)絡(luò) 收藏

        第八課、運算符和表達(dá)式(位運算符)

          學(xué)過匯編的朋友都知道匯編對位的處理能力是很強(qiáng)的,但是也能對運算對象進(jìn)行按位操作,從而使也能具有一定的對硬件直接進(jìn)行操作的能力。位運算符的作用是按位對變量進(jìn)行運算,但是并不改變參與運算的變量的值。如果要求按位改變變量的值,則要利用相應(yīng)的賦值運算。還有就是位運算符是不能用來對浮點型數(shù)據(jù)進(jìn)行操作的。c語言中共有6種位運算符。位運算一般的表達(dá)形式如下:

          變量 1 位運算符 變量 2 位運算符也有優(yōu)先級,從高到低依次是:“~”(按位取反)→“《《”(左移) →“》》”(右

          移) →“”(按位與)→“^”(按位異或)→“|”(按位或)

          表 8-1 是位邏輯運算符的真值表,X 表示變量 1,Y 表示變量 2

        單片機(jī)C語言知識點全攻略(三)

          表 8-1 按位取反,與,或和異或的邏輯真值表

          利用以前建立起來的實驗板,我們來做個實驗驗證一下位運算是否真是不改變參與變量 的值,同時學(xué)習(xí)位運算的表達(dá)形式。程序很簡單,用 P1 口做運算變量,P1.0-P1.7 對應(yīng) P1 變量的最低位到最高位,通過連接在 P1 口上的 LED 我們便能直觀看到每個位運算后變量 是否有改變或如何改變。程序如下:

          #include 《at89x51.h》

          void main(void)

          {

          unsigned int a;

          unsigned int b;

          unsigned char temp; //臨時變量

          P1 = 0xAA; //點亮 D1,D3,D5,D7 P1 口的二進(jìn)制為 10101010,為 0 時點亮 LED

          for (a=0;a《1000;a++)

          for (b=0;b《1000;b++); //延時

          temp = P1 0x7; //單純的寫 P1|0x7 是沒有意義的,因為沒有變量被影響,不會被編譯

          //執(zhí)行 P1|0x7 后結(jié)果存入temp,這個時候改變的是 temp,但 P1 不會被影響。


        上一頁 1 2 3 4 下一頁

        關(guān)鍵詞: 單片機(jī) C語言 全攻略

        評論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 无极县| 彝良县| 怀远县| 镇远县| 徐闻县| 洪泽县| 巴青县| 娱乐| 项城市| 葫芦岛市| 定陶县| 桂平市| 凤冈县| 广元市| 沧源| 泗阳县| 将乐县| 乐清市| 武乡县| 灵武市| 越西县| 武陟县| 邯郸市| 布拖县| 丽水市| 五峰| 普洱| 庆云县| 绥江县| 土默特右旗| 丽水市| 什邡市| 上栗县| 营山县| 甘孜| 临漳县| 哈尔滨市| 南靖县| 阳信县| 衡阳县| 合山市|