程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言--位運算符,C語言--運算符

C語言--位運算符,C語言--運算符

編輯:關於C語言

C語言--位運算符,C語言--運算符


一、位運算符

1.按位與:&

 1> 功能

 * 只有對應的兩個二進制位為1時,結果位才為1,否則為0

 * 舉例:10用二進制表示為1010,  7用二進制表示為0111。對兩個數值進行&運算

 *  1010

     0111

--------------------

     0010   

 * 規律:二進制中,與1相&保持原位,與0相&就為0

2> 應用:使用&運算符,判斷一個整數變量的奇偶性

1 int main() 2 { 3 int a = 10; 4 a&1 ? printf("%d為奇數", a) : printf("%d為偶數", a); 5 return 0; 6 } 利用&判斷變量奇偶性

2.按位或:|

 1> 功能

 * 只要對應的兩個二進制位中有一個為1,結果就為1,否則為0

 2> 應用

 * 10用二進制表示為1010,  7用二進制表示為0111。對兩個數值進行|運算

 *  1010

     0111

--------------------

     1111  

3.按位異或:^

 1> 功能

 * 當對應的二進制位相異時,結果為1,否則為0

 * 舉例:10用二進制表示為1010,  7用二進制表示為111。對兩個數值進行^運算

 *  1010

     0111

--------------------

    1101   

 2> 應用: 使用位異或運算符,實現兩個變量值的互換

1 int main() 2 { 3 /*該種用法基於三個規律。 4 1.相同數值進行異或運算,結果為0。 5 2.任何數值與0異或運算,結果還是原來數值。 6 3.交換規律:a^b^c=a^c^b */ 7 int a = 10; 8 int b = 11; 9 a = a ^ b;//a = 10^11 10 b = a ^ b;//b=10^11^11=10 11 a = a ^ b;//a=10^11^10=11 12 printf("a=%d,b=%d", a, b); 13 } 交換數值

 

4.按位取反:~

 1> 功能

 * 按位取反,就是對數值的每個二進制位進行取反操作,0取反變1,1取反變0

 2> 應用

 * 舉例:10用二進制表示為1010,對1010進行~操作

 *  1010

--------------------

     0101 

5.左移<<  、右移>>

 1> 功能

 * a<<n就是將a的各個二進制位向左移動n位,高位丟棄,地位用0補充,左移n位,其實就是乘以2的n次方;a>>n就是將a的各個二進制位向右移動n位,保持符號位不變,右移n位,其實就是除以2的n次方

 2> 應用

 *舉例:10用二進制表示為1010,對1010進行左移1位操作,結果是10100也就是20;對1010進行右移1位操作,結果是101也就是5.

 *注意:以後對變量進行乘法或除法時,運用左移或右移可以提高性能

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved