位運算應用總結

2021-10-10 22:11:27 字數 975 閱讀 5388

例如,在乙個系統中,使用者一般有查詢(select)、新增(insert)、修改(update)、刪除(delete)四種許可權,四種許可權有多種組合方式,也就是有16中不同的許可權狀態(2的4次方)。

一般情況下會想到用四個boolean型別變數來儲存:

public

class

permission

上面用四個boolean型別變數來儲存每種許可權狀態。

下面是另外一種方式,使用位掩碼的話,用乙個二進位制數即可,每一位來表示一種許可權,0表示無許可權,1表示有許可權。

public

class

newpermission

/** * 新增一項或多項許可權

*/public

void

enable

(int permission)

/** * 刪除一項或多項許可權

*/public

void

disable

(int permission)

/** * 是否擁某些許可權

*/public boolean isallow

(int permission)

/** * 是否禁用了某些許可權

*/public boolean isnotallow

(int permission)

/** * 是否僅僅擁有某些許可權

位運算總結與應用

一 求下面函式的返回值 int func x return count 功能 將x轉化為2進製,看含有的1的個數。每執行一次x x x 1 會將x用二進位制表示時最右邊的乙個1變為0,因為x 1將會將該位 x用二進位制表示時最右邊的乙個1 變為0。二 下面函式的作用 bool func int x ...

位運算應用

位運算 針對整型 字元型,計算機會將它轉換為二進位制運算 1 按位與 x y 對應位都為1時才為1 用途 取 保留1個數的某位 對應掩碼的對應位為1 其餘各位置1 2 按位或 x y 對應位都為0才為0,否則為1 用途 將1個數的某些位置1,其餘不變 3 按位異或 x y 對應位相同為0,不同為1 ...

位運算應用

1.判斷乙個數的奇偶性。x 1 101 1 1 2.判斷x是否是2的正整數冪。x x 1 100 011 0 3.取出乙個數的某些二進位制位。3.1.x 1 d 1 10101 1 3 1 00100 取第d位 3.2.x 1 d 1 10101 1 3 1 00101 取最後d位,x對2 d取模 ...