Like Share Discussion Bookmark Smile

J.J. Huang   2019-10-11   C   瀏覽次數:

C語言 - 第七章 | Operation - 位元運算

位元運算子

在電腦中資料的儲存都是利用0/1的編碼進行儲存,像是一個平常普通的十進位數字107,在電腦裡的儲存假設是4個位元則是:

1
2
10 -> 1010
7 -> 0111

而在 C 語言裡面有許多的運算子是專門針對位元進行運算的,如下表:

運算子 意義 舉例
& 且(and) A&B
| 或(or) A|B
^ 互斥或(xor) A^B
<< 向左位移 A<<B
>> 向右位移 A>>B
~ 取1補數 ~A

練習

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <stdio.h>

int main()
{
/*
C 語言中宣告各個進位方式:
二進位:0b+數字
八進位:0+數字
十進位:數字
十六進位:0x+數字
*/

int a = 0b00001010;//10
int b = 0b00000011;//3
int c = 0x0;

/*
C 語言中printf各個進位之參數:
二進位:自己寫(...)
八進位:%o
十進位:%d
十六進位:%x
*/

printf("a & b = %d\n", a & b);
printf("a | b = %d\n", a | b);
printf("a ^ b = %d\n", a ^ b);
printf("a << b = %d\n", a << b);
printf("a >> b = %d\n", a >> b);
printf("~c = %x\n", ~c);

return 0;
}


註:以上參考了
hackersir gitbooks
C 語言 程式設計教學:如何使用運算子 (Operators)