首先明確:基本位運算規則, 不依賴正負.
定義:對於a, b兩個位向量: [aw-1, aw-2, …, a0] 和 [bw-1, bw-2, …, b0], 將a&b定義為乙個長度為w的位向量, 其中第i個元素等於ai&bi, 0≤i
0\leq i
0≤i<
w<
w. 類似 |, ^, ~ 定義同理.
對應位全部為1, 對應結果位為1, 否則為0.
0110 & 1100 = 0100
對應位有1個位為1, 對應結果位為1, 否則為0.
0110 | 1100 = 1110
對應位互異, 對應結果位為1, 否則為…
0110 ^ 1100 = 1010
將原來的位, 1 變為0 , 0 變為1.
~ 1100 = 0011
這裡取a為兩個位元組為例, a為任意個位亦成立. 細細體會, 定有收貨.
a & 0xffff
a | 0
a ^ 0
a ^ 0xffff
~aa ^ 0x00ff
其他位不變, 也可稱只取指定位/丟棄指定位(掩碼, 如 chmod - x):
a & 0x00ff
其他位不變, 如chmod + x:
a | 0xff
基本的位運算
位運算常被用於二進位制的運算,例如利用子網掩碼計算ip位址,把擋住的字段作為網段,其餘的作為ip位址 與運算的結果如下,兩邊同時為1,則結果為1 0 0 0,0 1 0,1 0 0,1 1 1 非運算即取反運算,在二進位制中1變0,0變1 110101進行非運算後為 001010即1010 只要兩邊...
基礎演算法 位運算 基本運算
1.移動 左移n位 乘以2的n次方 右移n位 除以2的n次方 0 左移n位 在1後面加上n個0 注 0不等於1。等於11 11 x 0 正數左移右邊補0 正數右移左邊補0 負數左移右邊補1 負數右移左邊補1 移動的作用總結 乘2,除2。右n位清零 2.異或 x 0 x x x 0 x 1 x x x...
位運算的一些基本操作
原部落格 一 邏輯運算子 1.位與運算 1 運算規則 位與運算的實質是將參與運算的兩個資料,按對應的二進位制數逐位進行邏輯與運算。例如 int型常量4和7進行位與運算的運算過程如下 4 0000 0000 0000 0100 7 0000 0000 0000 0111 0000 0000 0000 ...