基礎演算法 位運算 基本運算

2021-09-07 16:54:40 字數 1276 閱讀 5187

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

3. 且運算

x&0=0

x&1=x

x&x=x

且運算的作用總結:位清零,位取數,取數

4. 或運算

x|0=x

x|1=1

x|x=x

或運算的作用總結:位清1,取數。

5. 取位

先把1左移i位

再把num與i做「與運算」

假設是0返回0,否則返回1

public static int getbit(int num, int i)
也能夠直接把這個數右移i位後和1做與運算

public static int getbit2(int num, int i)

6. 設位

設定第i位的方法:x|00000010 (i=1)

public static int setbit(int num, int i)

7. 清位

把第i位清0的方法

public static int clearbit(int num, int i)

把最左邊位到i位都清0的方法

public static int clearbitltoi(int num, int i)

把第i位到第1位都清0的方法

public static int clearbititor(int num, int i)

8. 更新位

步驟:清位+設位

public static int updatebit(int num, int i, int w)

以上8種基本運算很重要。每一位想要掌握位運算的朋友,上面的基本運算都須要很熟練的掌握

基礎演算法 12 位運算

位運算兩種簡單操作 1.求n的二進位制表示中第k位是多少。步驟 先把第k位移到最後一位 用 n k 看個位是多少n k 1 include include include include using namespace std intmain 2.返回n的最後一位1 lowbit n n n low...

演算法 位運算

public static intpowern int m,int n return m public static void main string args public static boolean ispower int n return false num如何使2的n次冪,那麼num nu...

java基礎 位運算,條件運算

只有整型數才能作位運算 相當於乘2 相當於除2 如 double a 5 a a 3 error 必須是整型數才可以位運算 system.out.println a 運算子 x 先運算,後自增 x 先自增,後運算 短路與,當前乙個條件為false時,後乙個條件不運算 按位與,當前乙個條件為false...