/**
* 事物同時具有多種狀態工具
* 二進位制,每一位代表一種狀態,0或1,採用&,|,^ 計算
*/public class stateutils
//或,有1則1
//新增狀態,states:原有的狀態, value:要新增的狀態
public static long addstate(long states,long value)
return states | value;
}//異或,相同為0,不同為1
//移除狀態,states:原有的狀態, value:要移除的狀態
public static long removestate(long states,long value)
return states ^ value;}}
二進位製小技巧
二進位制嘛,可以加速 a 2 a 1 a 2 a 1 2 b 1 b 可以判斷一些東西 a 1 a 2 1 a 1可以求出數的乙個相鄰數 等等等等 下面我會在做題目時記錄一下位運算的技巧 這題讓我們統計區間顏色種類,種類不超過30種 那我們可以用位運算來壓縮 開乙個int,轉換成二進位制後可以清晰的...
二進位製小技巧
目錄 xx 1 xx1xx1 x x現在令 x 10101000,接下來我們算一下 x x 1 的結果。首先我們回憶一下二進位制減法的規則 0 0 1 1 0 1 0 1 0 1 1 向高位借位 例如,11000011 2 00101101 2的算式如下 11000011 被減數 00101101 ...
二進位制運算技巧
假設都在x86或x86 64架構cpu上進行運算,二進位制基本運算包括,加減乘除 與 或 異或 同或 移位等 假設n 為 32 位整形數,取正整數n除以8的餘數 n 0x07 假設n 為 32 位整形數,取正整數n除以16的餘數 n 0x0f 假設n 為 32 位整形數,8位對齊 n 7 0xfff...