【C语言】按位与、按位或、按位异或
目錄
一、按位與(&)
二、按位或(|)
三、按位異或(^)
一、按位與(&)
規則:有0則為0,同時為1才為1
int main() {int a = 3;int b = -5;int c = a & b;printf("%d\n", c);//3//%d 意味著打印一個有符號的整數,所以實際上打印的是原碼return 0; }計算過程:
//00000000000000000000000000000011 ? —— ?3的補碼
//11111111111111111111111111111011? ? ? ? ? ?—— -5的補碼
//00000000000000000000000000000011 ? ——按位與:同時為1則為1
所以結果為3
二、按位或(|)
規則:有1則為1,同時為0才為0
int main() {int a = 3;int b = -5;int c = a | b;printf("%d\n", c);//-5return 0; }計算過程:
//00000000000000000000000000000011 ? —— ?3的補碼
//11111111111111111111111111111011 ? —— -5的補碼
//11111111111111111111111111111011 ? ——按位或后的補碼
//11111111111111111111111111111010 ? ——反碼
//10000000000000000000000000000101 ? ——原碼 (結果為-5)
三、按位異或(^)
規則:相同為0,相異為1
int main() {int a = 3;int b = -5;int c = a ^ b;printf("%d\n", c);//-8return 0; }計算過程:
//00000000000000000000000000000011 ? —— ?3的補碼
//11111111111111111111111111111011 ? —— -5的補碼
//11111111111111111111111111111000 ? —— ?按位異或后的補碼
//11111111111111111111111111110111 ? ——反碼
//10000000000000000000000000001000 ? ——原碼(-8)
總結
以上是生活随笔為你收集整理的【C语言】按位与、按位或、按位异或的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PL/SQL Developer 在wi
- 下一篇: Genessential获近千万元天使轮