from http://www.learncpp.com/cpp-tutorial/38-bitwise-operators/
前面的文章在 http://www.cnblogs.com/grass-and-moon/
位操作符的由來主要是為了更充分的利用內存,如果使用bool型變量,它是一個字節大小,其中一個字節的內存中只有一個位被利用,其余的位都被浪費了。但是現在內存是充裕的,程序員發現往往將代碼表達的更加讓人理解,更加容易維護是一種更好的選擇。
因此,位操作符的使用不再像最初那么平常了,除了一些特殊的環境中,如需要巨型數據處理的科學計算,或需要超速執行的游戲中,仍然會被使用。不管怎么樣,對它有個充分的認識和理解還是必須的。
Operator | Symbol | Form | Operation |
left shift | << | x << y | all bits in x shifted left y bits |
right shift | >> | x >> y | all bits in x shifted right y bits |
bitwise NOT | ~ | ~x | all bits in x flipped |
bitwise AND | & | x & y | each bit in x AND each bit in y |
bitwise OR | | | x | y | each bit in x OR each bit in y |
bitwise XOR | ^ | x ^ y | each bit in x XOR each bit in y |
注意 當我們使用位操作符時,使用的變量類型通常是無符號整型。
為操作符的原理通常很簡單,但是要將它用活,通常是有一定難度的。