位運算及其應用

2021-07-07 09:16:45 字數 1289 閱讀 1325

& 按位與 :如果兩個相應的二進位制位都為1,則該位的結果值為1,否則為0。

| 按位或 : 兩個相應的二進位制位中只要有乙個為1,該位的結果值為1。

^ 按位異或 : 若參加運算的兩個二進位制位值相同則為0,否則為1。

~ 取反 :~是一元運算子,用來對乙個二進位制數按位取反,即將0變1,將1變0。

<< 左移 : 用來將乙個數的各二進位制位全部左移n位,右補0。

>>右移 :將乙個數的各二進位制位右移n位,移到右端的低位被捨棄,對於無符號數,高位補0。

1.&的典型應用:

(1)快速對某一段資料單元資料清零。

a=321;

a=a&0x0;

a 0000 0001 0100 0001

&0000 0000 0000 0000

=0000 0000 0000 0000

(2)獲取乙個資料的指定位。

獲得整型數a=的低八位資料的操作為a=a&0xff。a=321。

a 0000 0001 0100 0001

&0000 0000 1111 1111

=0000 0000 0100 0001

2. |的典型應用

設定乙個資料的指定位。

a=321,將其低八位資料置為1的操作為a=a| 0xff。

a 0000 0001 0100 0001

| 0000 0000 1111 1111

=0000 0000 1111 1111

3. ^的典型應用

(1)定位翻轉

定位翻**設定乙個資料的指定位,將0置為1,1置為0。

a=321,將其低八位資料翻轉的操作為a=a^0xff。

a 0000 0001 0100 0001

^ 0000 0000 1111 1111

= 0000 0001 1011 1110

(2)數值交換。無需引入第三個變數。a=3,b=4交換a,b的值。

a=a^b; 0011^0100=0111

b=b^a; 0100^0111=0011

a=a^b; 0111^0011=0100

a=a^b->b=b^a=b^(a^b)=b^b^a=a;-> a=a^b ->

a=(a

^b)^(b

^b^a

)=a^b

^b^b

^a=a

^a^b

^b^b

;

位運算及其應用詳解

位運算子 位運算是以二進位制位為單位進行的運算,其運算元和運算結果都是整型值。todo 字元型 char 位運算子共有7個,分別是 位與 位或 位非 位異或 右移 左移 0填充的右移 一 邏輯運算子 1.位與運算 1 運算規則 位與運算的實質是將參與運算的兩個資料,按對應的二進位制數逐位進行邏輯與運...

位運算及其應用詳解

一 邏輯運算子 1.位與運算 1 運算規則 位與運算的實質是將參與運算的兩個資料,按對應的二進位制數逐位進行邏輯與運算。例如 int型常量4和7進行位與運算的運算過程如下 4 0000 0000 0000 0100 7 0000 0000 0000 0111 0000 0000 0000 0100 ...

Python 位運算及其應用

1.機器數 真值,原碼 反碼 補碼 機器數 乙個數在計算機中的二進位制表示形式,機器數是帶符號的,在計算機用乙個數的最高位存放符號,正數為0,負數為1 真值 因為第一位是符號位,所以機器數的形式值就不等於真正的數值,將帶符號位的機器數對應的真正數值稱為機器數的真值 為什麼要設定原碼 反碼 補碼 方便...