c語言位運算 C語言學習筆記(二)位運算

2021-10-12 03:50:08 字數 1043 閱讀 2495

這一節主要說的是位運算,計算機中的執行速度:位運算 > 加減 > 乘除 > 求餘

位運算就是將數字轉換成二進位制後進行運算,之後再將數字轉換成原來的進製

與運算:當兩個數相與時,只有都為l的時候結果才為1,其餘情況結果都為0,符號 &

#include     int main()
這個程式可以判斷a是偶數還是奇數,輸出為1說明a是奇數,否則是偶數

或運算:當兩個數相或時,只要有乙個為1結果就是1,兩個都為0時結果才是0,符號|

#include     int main()
這個程式可以判斷a是偶數還是奇數,輸出為1說明a是奇數,否則是偶數,符號 !

非運算:將1變成0,將0變成1

#include     int main()
a為true,取返後是false,就是0注意:當符號是 &&、||時也是兩個數相與相或,但是這個時候就不會將數字轉換成二進位制運算,而是只要這個數字非0就當成1直接參與運算,返回乙個bool值當&&、||運算兩邊是表示式的時候

#include     int main()        printf("a = %d,b = %d",a,b);            return 0;
輸出是a = 2,b = 1

在if(a++ || b++)裡面,a開始是1,這個時候程式不會執行b++,因為不管b是多少,a++ || b++一定是1,計算機不會做多餘的部分

#include     int main()        printf("a = %d,b = %d",a,b);            return 0;    }
輸出的是a = 1,b = 0,原因跟上面一樣

C語言學習 位運算

原碼 就是前面所介紹的二進位制定點表示法,即最高位為符號位,0 表示正,1 表示負,其餘位表示數值的大小。反碼 表示法規定 正數的反碼與其原碼相同 負數的反碼是對其原碼逐位取反,但符號位除外。補碼 表示法規定 正數的補碼與其原碼相同 負數的補碼是在其反碼的末位加 1 補碼是為了表示乙個負數的二進位制...

C語言實驗二 位運算

線性反饋移位暫存器 linear feedback shift register lfsr 是指給定前一狀態,將該輸出的線性函式再用作輸入的移位暫存器。異或運算是最常見的單位元線性函式 對暫存器的某些位進行異或操作後作為輸入,再對暫存器中的各個位元進行整體移位。賦給暫存器的初始值叫做 種子 因為線性...

C語言學習筆記 進製和位運算

第一部分 進製 一 基本概念 進製就是不同的計數方式,預設情況下寫的數字都是十進位制的。1 二進位制 逢2進製,0b或0b開頭 int number2 0b1100 2 十進位制 逢10進製 int number 12 3 八進位制 逢8進製,0開頭 int number3 014 4 十六進製制 ...