<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

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

          本文引用地址:http://www.ex-cimer.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 按位取反,與,或和異或的邏輯真值表

          利用以前建立起來(lái)的實(shí)驗(yàn)板,我們來(lái)做個(gè)實(shí)驗(yàn)驗(yàn)證一下位運(yùn)算是否真是不改變參與變量 的值,同時(shí)學(xué)習(xí)位運(yùn)算的表達(dá)形式。程序很簡(jiǎn)單,用 P1 口做運(yùn)算變量,P1.0-P1.7 對(duì)應(yīng) P1 變量的最低位到最高位,通過(guò)連接在 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; //單純的寫(xiě) P1|0x7 是沒(méi)有意義的,因?yàn)闆](méi)有變量被影響,不會(huì)被編譯

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

          //這個(gè)時(shí)候 LED 沒(méi)有變化,仍然是 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語(yǔ)言相關(guān)文章:c語(yǔ)言教程



          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();