歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> C++中的位運算符

C++中的位運算符

日期:2017/3/1 9:48:58   编辑:Linux編程

等級考試要考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、位或(|):或運算

Copyright © Linux教程網 All Rights Reserved