C++位元運算符(異或運算子和移位元運算符)__C++

來源:互聯網
上載者:User

什麼是位元運算

位元運算符按二進位進行運算,這些運算子只能用於整數類型的操作。如:char,short,int,long

通過位元運算符來擷取高位值和低位值

int a=0x1234;

int high,low;

high = (a>>8) &0x00ff;

low = a & 0x00ff;

 

左移運算子和右移運算子(<<和>>)

左移是將一個位元,移動若干位,右邊空出的位置用0來填補,高位左移溢出應該捨棄該高位。

如:inta = 8, a = 00001000;

a<<2則a =00100000;所以a的值為a*2^2 = 32;

左移過程中,如果這個數被溢出捨棄的高位不包含1,則移完後的值就是這個值*2^移動的位元.

 

右移是將一個位元,右移若干位,左邊空出的位置用0來填補(如果是無符號類型,如果是有符號類型則根據作業系統的規定來補全。有些作業系統是用符號位來填補,有些作業系統預設是按照0來填補)。

 

異或(^)

兩個參加二進位運算的值相同為0,否則為1

1.     與0異或,保留原來的值

2.     交換兩個值,不用臨時變數

a=3,b=4

a= a^b;

b= b^a;(b=b^a^b)

a= a^b;(a^b^a^b^b)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.