等級考試要考C++,我平時得留心著點兒,經常總結一下,會有好處吧,先總結一下C++中的運算符。
在我們學習的VB編程語言中運算符都包含了那麼幾類:算術運算符、邏輯運算符、關系運算符、賦值運算符等。
這算是C++與其的共性吧。當然作為一門獨立的語言,它也會有專門屬於自己的運算符。或者說目前我認為,這個是我新接觸到的一些運算符(其他的編程語言沒怎麼接觸過)。
1、位運算符
一種二進制運算符,分為移位運算和按位運算。
此運算符,在操作時,要先將操作數按二進制形式逐位進行邏輯運算和操作。
1.例如:
unsigned char c(135)二進制表示為10000111
對於取反(~):即將原來的0變為1,把原來的1變為0,最後為01111000,即為十進制中的120
2、左移<<:是操作數向左移動其右操作數所指定的位數,移出位補0
unsigned char d(43) d<<1
43的二進制表示為:00101011,統一將數字向左移動一位,為01010110,即十進制的86
根據這種原理,其實每當左移一位時,結果為操作數*2,移兩位,操作數*4。。。依次為操作數*2^n
同理,右移為除法
3.異或運算,我個人認為這個還是有點兒難理解的。規則為;"同則為0,異則為1"
個人觀點:異或,只有不相同的才能稱之為“異或”,那麼相同則不符合條件,這裡1代表true,0代表false,那麼只有幾個同時滿足某個條件時,此時,不符合異或的條件,那麼結果為0.若兩個數中只有一個或幾個而不是全部,那麼結果為1.
以上,是C++中關於位運算符的一些收獲,此外,在使用位運算符時,還應注意優先級問題和溢出問題。
優先級; 2、位求反 (~)
6、左移(<<)、右移(>>)
9、位於(&):其實就是且運算
10、異或(^)
11、位或(|):或運算