c語言位運算符的用法
C語言中位運算的運算分量只能是整型或字符型數據,位運算把運算對象看作是由二進位組成的位串信息,按位完成指定的運算,得到位串信息的結果。下面小編就爲大家介紹下c語言位運算符的用法。
c語言位運算符的用法如下:
一、位運算符C語言提供了六種位運算符:
& 按位與
| 按位或
^ 按位異或
~ 取反
<< 左移
>> 右移
1. 按位與運算
按位與運算符"&"是雙目運算符。其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均爲1時,結果位才爲1 ,否則爲0。參與運算的數以補碼方式出現。
例如:9&5可寫算式如下: 00001001 (9的二進制補碼)&00000101 (5的二進制補碼) 00000001 (1的二進制補碼)可見9&5=1。
按位與運算通常用來對某些位清0或保留某些位。例如把a 的高八位清 0 , 保留低八位, 可作 a&255 運算 ( 255 的二進制數爲0000000011111111)。
main(){
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
main(){
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)。
main(){
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。
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);
}
相關文章
-
c語言位運算符的用法指導
清愍帝退位詔清宣統三年十二月二十五日,中華民國元年二月二日(公元1912年2月12日),清宣統帝愛新覺羅·溥儀以清廷的名義,頒佈了清帝退位詔書。第一道諭旨如下朕欽奉隆裕皇太后懿旨前因民軍起事,各省響應,九夏沸騰,生靈塗炭, -
C語言位運算和sizeof運算符詳解
C語言中提供了一些運算符可以直接操作整數的位,稱爲位運算,因此位運算中的操作數都必須是整型的。位運算的效率是比較高的,而且位運算運用好的話會達到意想不到的效果。下面,就和小編一起來看一看C語言位運算和sizeof運算 -
c語言算術運算符
心得體會是指一種讀書、實踐後所寫的感受性文字。以下這篇微生物培訓心得體會是由小編爲大家精心整理提供,歡迎閱讀! 微生物培訓心得體會【1】我去杭州參加了關於微生物檢驗的繼續培訓。這次培訓主要講了微生物的概 -
C語言輔導:C語言運算符表
110米欄世界冠軍飛雲,在奧運會比賽中受傷後,不僅在人類的世界,引起他的粉絲們一片嘆息,消息傳到動物界,也在哪裏引起了他的追隨者傷心不已。特別是它們得知,經過人類的很多專家會診,飛雲受傷的腳腱還是沒有完全康復,明天還要 -
C語言中的運算符
簡單賦值運算符記爲“=”,由“= ”連接的式子稱爲賦值表達式。歡迎大家閱讀!更多相關信息請關注相關欄目!無論是加減乘除還是大於小於,都需要用到運算符,在C語言中的運算符和我們平時用的基本上都差不多。運算符包括賦值運 -
C語言的移位操作符使用方法
位移位運算符是將數據看成二進制數,對其進行向左或向右移動若干位的運算。位移位運算符分爲左移和右移兩種,均爲雙目運算符。第一運算對象是移位對象,第二個運算對象是所移的二進制位數。以下是小編爲大家搜索整理的C語 -
C語言的條件運算符
C語言之所以命名爲C,是因爲 C語言源自Ken Thompson發明的B語言,而 B語言則源自BCPL語言。下面是小編分享的C語言的條件運算符,歡迎大家參考!如果希望獲得兩個數中最大的'一個,可以使用 if 語句,例如:if(a>b){ max = a;}els -
C語言邏輯運算符
在高中數學中,我們學過邏輯運算,例如p爲真命題,q就假命題,那麼“p且q”爲假,“p或q”爲真,“非q”爲真。那麼有關C語言邏輯運算符是怎樣的呢?以下僅供參考!在C語言中,也有類似的邏輯運算:運算符說明結合性舉例&&與運算, -
C語言關係運算符
if 的判斷條件中使用了<=、>、!=等符號,它們專門用在判斷條件中,讓程序決定下一步的操作,稱爲關係運算符。下面是小編分享的C語言關係運算符,歡迎大家參考!關係運算符在使用時,它的的兩邊都會有一個表達式,比如變量、數值、 -
C語言賦值運算符
簡單賦值運算符記爲=,由= 連接的式子稱爲賦值表達式。以下是小編爲大家搜索整理的C語言賦值運算符,歡迎大家閱讀!更多精彩內容請及時關注我們應屆畢業生考試網!其一般形式爲:變量=表達式例如:x=a+bw=sin(a)+sin(b)y=i+++-