C語言的位操作符

位運算符有:&(按位與)、|(按位或)、^(按位異或)、~ (按位取反)。

優先級從高到低,依次爲~、&、^、|。

按位與運算有兩種典型用法:①取一個位串信息的某幾位,如以下代碼截取x的最低7位:x & 01111111。②讓某變量保留某幾位,其餘位置0,如以下代碼讓x只保留最低6位:x = x & 00111111;

按位或運算的典型用法:將一個位串信息的某幾位置爲1。如將要獲得最右4位置爲1,其他位與變量j原來其他位保持相同,可用邏輯或運算00001111|j;

按位異或運算的典型用法:是求一個位串信息的某幾位信息的反。如欲求整型變量j的最右4位信息的反,用邏輯異或運算00001111^j,就能求得j最右4位的信息的反,即原來爲1的位,結果是0,原來爲0的位,結果是1。

例如:交換兩個值,不用臨時變量,假如a=3,b=4。想將a和b的值互換,可以用以下賦值語句實現: a=a^b; b=b^a; a=a^b;

取反運算常用來生成與系統實現無關的常數。如要將變量x最低6位置成0,其餘位不變,可用代碼x = x & ~0111111實現。

 

轉自:http://blog.csdn.net/sandy1983/archive/2009/09/17/4562668.aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章