逍遙自在學C語言 | 位運算符的基礎用法
前言

一、人物簡介
- 第一位閃亮登場,有請今后會一直教我們C語言的老師 —— 自在。

- 第二位上場的是和我們一起學習的小白程序猿 —— 逍遙。

二、構成和表達方式
- 位運算符是一組用于在二進制數之間進行操作的運算符
| 運算符 | 名稱 | 示例 |
|---|---|---|
| & | 位與 | a && b |
| | | 位或 | a | b |
| ^ | 位異或 | a ^ b |
| ~ | 位取反 | ~a |
| << | 二進制左移 | a << 2 |
| >> | 二進制右移 | a >> 2 |
三、位運算符的應用
1、位與運算符 (&)
-
位與運算符用符號
&表示。 -
如果兩個操作數的對應位都為1,則位與運算的結果為1,否則結果為0
-
示例代碼
#include <stdio.h>
int main() {
int a = 13; //二進制表示為0b1101
int b = 11; //二進制表示為0b1011
int c = a & b;
printf("%d\n", c); //輸出結果為9,二進制表示為0b1001
return 0;
}

2、位或運算符 (|)
-
位或運算符用符號
|表示。 -
如果兩個操作數的對應位中至少有一個為1,則位或運算的結果為1,否則結果為0。
-
示例代碼
#include <stdio.h>
int main() {
int a = 13; //二進制表示為0b1101
int b = 11; //二進制表示為0b1011
int c = a | b;
printf("%d\n", c); //輸出結果為15,二進制表示為0b1111
return 0;
}

3、位異或運算符 (^)
-
位異或運算符用符號
^表示 -
如果兩個操作數的對應位不同,則位異或運算的結果為1,否則結果為0
-
示例代碼
#include <stdio.h>
int main() {
int a = 13; //二進制表示為0b1101
int b = 11; //二進制表示為0b1011
int c = a ^ b;
printf("%d\n", c); //輸出結果為6,二進制表示為0b0110
return 0;
}

4、位取反運算符 (~)
-
位取反運算符用符號
~表示 -
它會對操作數的每個二進制位取反,即0變成1,1變成0
-
示例代碼
#include <stdio.h>
int main() {
int a = 13; //二進制表示為0b1101
int b = ~a;
printf("%d\n", b); //輸出結果為-14,二進制表示為0b11111111111111111111111111110010
return 0;
}

5、左移運算符 (<<)
-
左移運算符用符號
<<表示 -
它將操作數的所有二進制位向左移動指定的位數,并在低位填充0
-
示例代碼
#include <stdio.h>
int main() {
int a = 13; //二進制表示為0b1101
int b = a << 2;
printf("%d\n", b); //輸出結果為52,二進制表示為0b110100
return 0;
}

6、右移運算符 (>>)
-
右移運算符用符號
>>表示。 -
它將操作數的所有二進制位向右移動指定的位數,并在高位填充0或1(具體取決于操作數的符號)
-
示例代碼
#include <stdio.h>
int main() {
int a = 13; //二進制表示為0b1101
int b = a >> 2;
printf("%d\n", b); //輸出結果為3,二進制表示為0b0011
return 0;
}

小結
通過本文的講解,我們學會了6種位運算符的基礎用法,在接下來的文章中,將會繼續介紹這6種位運算符的高級用法。

浙公網安備 33010602011771號