• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)c語言教程:運(yùn)算符和表達(dá)式(位運(yùn)算符)

    單片機(jī)c語言教程:運(yùn)算符和表達(dá)式(位運(yùn)算符)

    作者: 時(shí)間:2012-09-12 來源:網(wǎng)絡(luò) 收藏

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

    本文引用地址:http://www.czjhyjcfj.com/article/170886.htm

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

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

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

    X

    Y

    ~X

    ~Y

    XY

    X|Y

    X^Y

    0

    0

    1

    1

    0

    0

    0

    0

    1

    1

    0

    0

    1

    1

    1

    0

    0

    1

    0

    1

    1

    1

    1

    0

    0

    1

    1

    0

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

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

    #include at89x51.h>

    void main(void)

    {

    unsigned int a;

    unsigned int b;

    unsigned char temp; //臨時(shí)變量

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

    for (a=0;a1000;a++)

    for (b=0;b1000;b++); //延時(shí)

    temp = P1 0x7; //單純的寫 P1|0x7 是沒有意義的,因?yàn)闆]有變量被影響,不會(huì)被編譯

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

    //這個(gè)時(shí)候 LED 沒有變化,仍然是 D1,D3,D5,D7 亮

    for (a=0;a1000;a++)

    for (b=0;b1000;b++); //延時(shí) P1 = 0xFF; //熄滅 LED

    for (a=0;a1000;a++)

    for (b=0;b1000;b++); //延時(shí)

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

    for (a=0;a1000;a++)

    for (b=0;b1000;b++); //延時(shí)

    c語言相關(guān)文章:c語言教程



    上一頁 1 2 下一頁

    評論


    相關(guān)推薦

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

    關(guān)閉
    主站蜘蛛池模板: 米泉市| 剑河县| 通辽市| 六盘水市| 云安县| 喀喇| 清水河县| 锦屏县| 尚义县| 邢台市| 朝阳区| 长宁县| 个旧市| 北宁市| 尖扎县| 徐闻县| 阜城县| 峡江县| 太谷县| 巴彦县| 吉水县| 元氏县| 巨鹿县| 溧水县| 辽阳县| 西青区| 日喀则市| 重庆市| 壤塘县| 邵武市| 包头市| 罗山县| 安塞县| 田阳县| 藁城市| 祁门县| 上蔡县| 涟源市| 会宁县| 辽阳市| 韩城市|