這一節主要說的是位運算,計算機中的執行速度:位運算 > 加減 > 乘除 > 求餘
位運算就是將數字轉換成二進位制後進行運算,之後再將數字轉換成原來的進製
與運算:當兩個數相與時,只有都為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 十六進製制 ...