C 位運算子詳解 異或運算子和移位運算子

2022-10-04 01:54:09 字數 741 閱讀 6281

什麼是位運算

位運算子按二進位制進行運算,這些運算子只能用於整數型別的操作。如:char,short,int,longbqclwf

通過位運算子來獲取高位值和低位值

int a=0x1234;

int high,low;

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

low = a & 0x00ff;

左移運算子和www.cppcns.com右移運算子(>)

左移是將乙個二進位制數,移動若干位,右邊空出的位置用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)

本文標題: c++位運算子詳解(異或運算子和移位運算子)

本文位址:

異或運算子和位運算子詳解

一.異或運算子 1.異或運算子是用符號 表示的,其運算規律是 轉換成二進位制的形式來對比每一位數,相同則結果為0,不同則結果為1。分析 a 的值是15,轉換成二進位制為 1111,而b 的值是2,轉換成二進位制為 0010,根據異或的運算規律,可以得出其結果為 1101 即最終 a b的值為13 二...

位運算子和移位運算子

golang中有3個位運算 按位與 按位或 按位異或 按位與 兩位全為1,結果為1,否則為0 按位或 兩位有乙個為1,結果為1,否則為0 按位異或 兩位乙個為0,乙個為1,結果為1,否則為0 例如 2 3 2 2的補碼0000 0010 3的補碼0000 0011 2 3 0000 0010 2 2...

位運算子 移位運算子

按位操作符用來操作整數基本資料型別中的單個位元 bit 就是二進位制,按位操作符會對兩個引數中對應的位 bit 執行布林運算,最終生成乙個結果。下面我們來看一下都有哪些位運算子。ok,有人看了之後可能會問,與 或 異或這三個符號不是邏輯運算子嗎,怎麼又成了位運算子?其實,我們知道,任何資訊在計算機中...