java 位運算 應用於 多個狀態維護

2021-07-23 18:40:54 字數 946 閱讀 7532

通過 <<  |  & ~ 位運算,實現同時擁有多個狀態

通過 << 定義資料的狀態

public inte***ce logconstants

if (costgold > 0)

現在就表示 mark 已經擁有了 logconstants.cost_soph , logconstants.cost_gold兩個狀態;

因為第一次 執行 mark |= logconstants.cost_soph

0000 0000   |  0000 1000  = 0000 1000 = mark;

然後再次執行  mark |= logconstants.cost_gold;

0000 1000  |  0000 0010  = 0000 1010  = mark;

所有mark  在兩個為 已經標誌位1 ; 表示其擁有了兩個狀態;

通過 (m & logconstants.cost_asset) > 0 判斷是否擁有該狀態

通過 m = (short) (m & ~logconstants.cost_asset);扣除該狀態

最後我們需要 知道 mark擁有哪些狀態:可以執行如下:

mark & cost_asset = 0000 1010 & 0000 0001 = 0000 0000  沒有乙個位標誌 為1 ; 所以mark沒用擁有cost_asset狀態;

mark & cost_gold  = 0000 1010 & 0000 0010 = 0000 0010 = cost_gold  結果與cost_gold一致 ; 所以mark擁有cost_gold狀態;

mark = mark & ~logconstants.cost_gold =  0000 1010 & 1111 1101 = 0000 1000 ; 這樣mark 就可以把擁有的cost_gold狀態 扣除了

WGAN GP應用於一維時序訊號

近年來生成對抗網路在各大頂會上大放異彩,但是大多研究集中在影象方面,衍生出一系列dcgan wgan等等模型,最近我在關於手語識別的研究中遇到資料量及資料種類過少的問題,故想到使用gan來生成手語資料,達到以假亂真的效果。除了這個方面外,gan在這些訊號的生成的研究對於醫療方面受損訊號的恢復 意圖生...

java位運算應用

1.判斷int型變數a是奇數還是偶數 a 1 0 偶數 a 1 1 奇數 2.求平均值,比如有兩個int型別變數x y,首先要求x y的和,再除以2,但是有可能x y的結果會超過int的最大表示範圍,所以位運算就派上用場啦。x y x y 1 3.對於乙個大於0的整數,判斷它是不是2的幾次方 x x...

Java位運算應用

測試 在github 常見的位運算包括 與 或 非 異或 左位移 右位移 或 包含關係判斷 定義 0000 private static final int flag one 0x1 0010 private static final int flag two 0x2 0100 private st...