亚洲欧洲国产欧美一区精品,激情五月亚洲色五月,最新精品国偷自产在线婷婷,欧美婷婷丁香五月天社区

      考試首頁 | 考試用書 | 培訓(xùn)課程 | 模擬考場 | 考試論壇  
      全國  |             |          |          |          |          |         
        當(dāng)前位置:計算機(jī)等級 > 二級考試 > C語言程序設(shè)計 > C語言輔導(dǎo) > 文章內(nèi)容
        

      全國計算機(jī)等級考試二級C語言入門教程(119)

      中華IT學(xué)院   【 】  [ 2016年5月25日 ]

      位運(yùn)算符C語言提供了六種位運(yùn)算符:
      & 按位與
      | 按位或
      ^ 按位異或
      ~ 取反
      << 左移
      >> 右移

      1. 按位與運(yùn)算 按位與運(yùn)算符"&"是雙目運(yùn)算符。其功能是參與運(yùn)算的兩數(shù)各對應(yīng)的二進(jìn)位相與。只有對應(yīng)的兩個二進(jìn)
      位均為1時,結(jié)果位才為1 ,否則為0。參與運(yùn)算的數(shù)以補(bǔ)碼方式出現(xiàn)。
      例如:9&5可寫算式如下: 00001001 (9的二進(jìn)制補(bǔ)碼)&00000101 (5的二進(jìn)制補(bǔ)碼) 00000001 (1的二進(jìn)制補(bǔ)碼)
      可見 9&5=1。
      按位與運(yùn)算通常用來對某些位清0或保留某些位。例如把a(bǔ) 的高八位清 0 , 保留低八位, 可作 a&255 運(yùn)算
      ( 255 的二進(jìn)制數(shù)為0000000011111111)。

      main(){
      int a=9,b=5,c;
      c=a&b;
      printf("a=%d\nb=%d\nc=%d\n",a,b,c);
      }


      2. 按位或運(yùn)算 按位或運(yùn)算符“|”是雙目運(yùn)算符。其功能是參與運(yùn)算的兩數(shù)各對應(yīng)的二進(jìn)位相或。只要對應(yīng)的二個二
      進(jìn)位有一個為1時,結(jié)果位就為1。參與運(yùn)算的兩個數(shù)均以補(bǔ)碼出現(xiàn)。
      例如:9|5可寫算式如下: 00001001|00000101
      00001101 (十進(jìn)制為13)可見9|5=13
      main(){
      int a=9,b=5,c;
      c=a|b;
      printf("a=%d\nb=%d\nc=%d\n",a,b,c);
      }


      3. 按位異或運(yùn)算 按位異或運(yùn)算符“^”是雙目運(yùn)算符。其功能是參與運(yùn)算的兩數(shù)各對應(yīng)的二進(jìn)位相異或,當(dāng)兩對應(yīng)的
      二進(jìn)位相異時,結(jié)果為 1。參與運(yùn)算數(shù)仍以補(bǔ)碼出現(xiàn),例如 9^5可寫成算式如下: 00001001^00000101 00001100 (十
      進(jìn)制為 12)
      main(){
      int a=9;
      a=a^15;
      printf("a=%d\n",a);
      }


      4. 求反運(yùn)算 求反運(yùn)算符~為單目運(yùn)算符,具有右結(jié)合性。 其功能是對參與運(yùn)算的數(shù)的各二進(jìn)位按位求反。例如~9

      的運(yùn)算為: ~(0000000000001001)結(jié)果為:1111111111110110

      5. 左移運(yùn)算 左移運(yùn)算符“<<”是雙目運(yùn)算符。其功能把“<< ”左邊的運(yùn)算數(shù)的各二進(jìn)位全部左移若干位,由“<<”
      右邊的數(shù)指定移動的位數(shù),
      高位丟棄,低位補(bǔ)0。例如: a<<4 指把a(bǔ)的各二進(jìn)位向左移動4位。如a=00000011(十進(jìn)制3),左移4位后為00110000(十
      進(jìn)制48)。6. 右移運(yùn)算 右移運(yùn)算符“>>”是雙目運(yùn)算符。其功能是把“>> ”左邊的運(yùn)算數(shù)的各二進(jìn)位全部右移若干
      位,“>>”右邊的數(shù)指定移動的位數(shù)。
      例如:設(shè) a=15,a>>2 表示把 000001111右移為 00000011(十進(jìn)制3)。 應(yīng)該說明的是,對于有符號數(shù),在右移時,
      符號位將隨同移動。當(dāng)為正數(shù)時, 最高位補(bǔ)0,而為負(fù)數(shù)時,符號位為1,最高位是補(bǔ)0或是補(bǔ)1 取決于編譯系統(tǒng)的
      規(guī)定。Turbo C和很多系統(tǒng)規(guī)定為補(bǔ) 1。
      main(){
      unsigned a,b;
      printf("input a number: ");
      scanf("%d",&a);
      b=a>>5;
      b=b&15;
      printf("a=%d\tb=%d\n",a,b);
      }
      請再看一例!
      main(){
      char a='a',b='b';
      int p,c,d;
      p=a;
      p=(p<<8)|b;
      d=p&0xff;
      c=(p&0xff00)>>8;
      printf("a=%d\nb=%d\nc=%d\nd=%d\n",a,b,c,d);
      }

       

      分享到:
      本文糾錯】【告訴好友】【打印此文】【返回頂部
      將考試網(wǎng)添加到收藏夾 | 每次上網(wǎng)自動訪問考試網(wǎng) | 復(fù)制本頁地址,傳給QQ/MSN上的好友 | 申請鏈接 | 意見留言 TOP
      關(guān)于本站  網(wǎng)站聲明  廣告服務(wù)  聯(lián)系方式  站內(nèi)導(dǎo)航  考試論壇
      Copyright © 2006-2017 中華考試網(wǎng)(Examw.com) All Rights Reserved  營業(yè)執(zhí)照