<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-28  評論-15  文章-81  trackbacks-0
    C提供了六種位運算運算符;這些運算符可能只允許整型操作數,即char、short、int和long,無論signed或者unsigned。
    & 按位與(AND)
    | 按位或(OR)
    ^ 按位異或(XOR)
    << 左移
    >> 右移
    ~ 求反碼(一元運算)

    1. 按位與運算 按位與運算符"&"是雙目運算符。其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1 ,否則為0。參與運算的數以補碼方式出現。

    例如:9&5可寫算式如下: 00001001 (9的二進制補碼)&00000101 (5的二進制補碼) 00000001 (1的二進制補碼)可見9&5=1。15&127=(01111111)&(00001111)=(00001111)=15
     
    按位與運算通常用來對某些位清0或保留某些位。例如把a 的高八位清 0 , 保留低八位, 可作 a&255 運算 ( 255 的二進制數為0000000011111111)。
    #include <stdio.h>
    int main(void){
    int a=9,b=5,c;
    c=a&b;
    printf("a=%d\nb=%d\nc=%d\n",a,b,c);
    }

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

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

    4. 求反運算 求反運算符~為單目運算符,具有右結合性。 其功能是對參與運算的數的各二進位按位求反。例如~9的運算為: ~(0000000000001001)結果為:1111111111110110

    5. 左移運算 左移運算符“<<”是雙目運算符。其功能把“<< ”左邊的運算數的各二進位全部左移若干位,由“<<”右邊的數指定移動的位數,
    高位丟棄,低位補0。例如: a<<4 指把a的各二進位向左移動4位。如a=00000011(十進制3),左移4位后為00110000(十進制48)。6. 右移運算右移運算符“>>”是雙目運算符。其功能是把“>> ”左邊的運算數的各二進位全部右移若干位,“>>”右邊的數指定移動的位數。
    例如:設 a=15,a>>2 表示把000001111右移為00000011(十進制3)。應該說明的是,對于有符號數,在右移時,符號位將隨同移動。當為正數時, 最高位補0,而為負數時,符號位為1,最高位是補0或是補1 取決于編譯系統的規定。Turbo C和很多系統規定為補1。
    int main(void){
    unsigned a,b;
    printf("input a number: ");
    scanf("%d",&a);
    b=a>>5;
    b=b&15;
    printf("a=%d\tb=%d\n",a,b);
    }

    請再看一例!
    int main(void){
    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);
    }



    posted on 2008-10-14 13:43 譚明 閱讀(654) 評論(0)  編輯  收藏 所屬分類: C/C++

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲成人免费在线观看| 韩日电影在线播放免费版| 人成午夜免费视频在线观看| 久久久久亚洲精品无码系列| 久久久久国色av免费看| 亚洲日本一区二区三区| 美丽的姑娘免费观看在线播放| 曰批全过程免费视频播放网站| 日韩一区二区在线免费观看| 欧美亚洲国产SUV| 免费大黄网站在线观| 一区二区三区视频免费| 在线A亚洲老鸭窝天堂| 国产精品免费观看调教网| 亚洲自偷自偷精品| 久久精品免费一区二区喷潮 | 午夜不卡久久精品无码免费| 日本阿v免费费视频完整版| 在线观看日本亚洲一区| 免费日本黄色网址| a在线免费观看视频| 亚洲黄色在线视频| 久久精品免费观看| 亚洲人成电影院在线观看| 真实乱视频国产免费观看| 亚洲视频在线免费看| 午夜爱爱免费视频| 一区二区三区在线观看免费| 国产精品美女自在线观看免费| 亚洲精品一区二区三区四区乱码 | yellow视频免费看| 亚洲成色在线综合网站| 波多野结衣免费在线观看| 欧洲亚洲综合一区二区三区| 亚洲欧洲无码AV电影在线观看| 免费夜色污私人影院网站电影 | 亚洲中文字幕成人在线| 色偷偷噜噜噜亚洲男人| 亚洲av午夜福利精品一区人妖| 国产一级黄片儿免费看| 亚洲av成人综合网|