語言算式裡有次方 c 裡花樣繁多的運算子

2021-10-15 00:21:21 字數 2261 閱讀 5411

運算子相信大家在入門學無論哪門語言的時候都聽到過,它們可以對資料進行運算、賦值等操作,是入門必學的知識之一

/1.運算子的分類/

運算子有許多種類,如按功能分:

1.算術運算子 進行運算:+ - * / %

2.賦值運算子(復合運算子) 進行賦值:= += -= *= /= %=

3.邏輯運算子 進行判斷:&& || !

4.按位運算子(binary) 進行改變:<< >> ^ ~ & |

5.比較運算子 進行判斷:< > ==

當然,還可以有其它分法,如按運算元數量分:

1.單目運算子 有乙個運算元:~ !

2.雙目運算子 有兩個運算元:+ - *  / = > >> || ^等

3.三目運算子 有三個運算元:?:

/2.復合運算子和邏輯運算子/

上面一定有許多「熟面孔」吧!今日,我就來挑些不常用在python裡的運算子,第乙個登場的是——復合運算子!

復合運算子集結了算術運算子和賦值運算子兩大運算子,復合運算子的家庭成員如下:

+= -= *= /= %= <<= >>= ^= ...
如+=它對應:

a += 10;//same -> a = a+10;
-=和他對應:

a -= 10;//same -> a = a-10;
邏輯運算子為!(非),&&(與),||(或),在python中,他們對應not,and,or。注意,這三個運算子的優先順序順序是!>&&>||。

/3.自增自減運算子/

這些運算子都是單目運算子,他們非常簡單:

a++;//same -> a = a+1;a--;//same -> a= a-1;
這++和--可以放前面(字首),也可以放後面(字尾),區別是,字首在呼叫前加減,字尾在呼叫後加減:

int a = 10;int b = a++; //a此刻等於11int c = ++a;cout  12,10,12
注意:自增自減運算子在python中沒有意義!

/4.按位運算子/

這是乙個非常複雜的種類,要了解他需要首先了解二進位制:

二進位制(binary)在數學和數位電路中指以2為基數的記數系統,以2為基數代表系統是二進位制的。現代的計算機和依賴計算機的裝置裡都用到二進位制。每個數字稱為乙個位元(bit,binary digit的縮寫)。

按位運算子就是對二進位制位逐位操作。

我們今天來認識幾個基本的位運算子:左移、右移、按位邏輯運算子。

左移(<

// 左移:  // 60(d) = 111100(b)  //    111100 左移三位  // <<<  // 111100___ 空位用0填充:  // 111100000  //  // 正整數左移變大2的n次方倍(n為左移位數),溢位除外 。  cout << "60左移三位:" << (m << 3) << endl;
右移(>>)其實也一樣:

// 右移:  // 60(d) = 111100(b)  // 111100    右移三位  //       >>>  // ___111100 空位用0填充,溢位的丟棄:  // 000111  //  // 正整數右移縮小2的n次方倍(n為右移位數),溢位除外 。  cout << "m右移三位:" << (m >> 3) << endl << endl;
接下來就是「按位邏輯運算子」啦!它們其實與一般的邏輯運算子沒啥區別,只不過他們是對bit進行操作,而邏輯運算子是對int進行操作。

按位與——&:

//按位與:  //60(d) = 111100(b)  //13(d) = 001101(b);  //       &----------  //        001100(b)   cout 

按位或——|:

//按位或:// 60(d) = 111100(b)// 13(d) = 001101(b)//        |----------//         111101(b)  cout 

按位異或——^:

//按位異或:// 60(d) = 111100(b) // 13(d) = 001101(b) // ^---------- // 110001(b) cout << "m異或n:" << (m^n) << endl;

如果兩個二進位制位上b不同,則新的二進位制為一,否則為零。

今天你學廢了嗎

C語言裡的for

for迴圈感覺是比較有技術含量的乙個知識點,很容易繞暈過去,特別是for迴圈的巢狀語句,總是有種不知道應該怎麼往下看的無措感。但是for迴圈其實還有點意思,特別是在我用它能輸出菱形之後,越發覺得好神奇。首先總結for的知識點 格式如下 for 表示式1 表示式2 表示式3 語句表示式1 賦初值,只執...

C語言巨集裡 的用法

c 和c 中的巨集 macro 屬於編譯器預處理的範疇,屬於編譯期概念 而非執行期概念 下面對常遇到的巨集的使用問題做了簡單總結。關於 和 define warn if exp do while 0 那麼實際使用中會出現下面所示的替換過程 warn if divider 0 被替換為 do whil...

c語言裡NULL的理解

null一看名字就知道為空,什麼為空呢,而且全是大寫。是不是意味著是個巨集定義呢?如果想到這裡,我相信你離真理不遠了。有些人為什麼犯錯?因為只看到了null這四個字母而已,沒有看到事物的本質,老師在課堂上也只是說空指標,空字串。這樣只會陷入無止境的誤區。如果我這樣定義 define null 0 你...