銆銆瀹氫箟a^b涓猴細a鐨刡嬈℃柟
銆銆鍋囧錛屾垜浠負姣忎竴涓搷浣滆瀹氫竴涓敮涓鐨勬暣鏁板鹼紝姣斿錛?/p>
鍒犻櫎錛★紞錛嶏紞0
淇敼錛★紞錛嶏紞1
娣誨姞錛★紞錛嶏紞2
鍒犻櫎錛紞錛嶏紞3
淇敼錛紞錛嶏紞4
娣誨姞錛紞錛嶏紞5
銆傘傘?/p>
銆銆鐞嗚涓婂彲浠ユ湁錛釜鎿嶄綔錛岃繖鍙栧喅浜庝綘鐢ㄤ簬鍌ㄥ瓨鐢ㄦ埛鏉冮檺鍊肩殑鏁版嵁綾誨瀷浜嗐?/p>
銆銆榪欐牱錛屽鏋滅敤鎴鋒湁鏉冮檺錛氭坊鍔狅肌錛嶏紞錛?錛涘垹闄わ饑錛嶏紞錛?錛涗慨鏀癸饑錛嶏紞錛?
閭g敤鎴風殑鏉冮檺鍊?purview =2^2+2^3+2^4錛?8錛屼篃灝辨槸2鐨勬潈鐨勫拰浜?br />鍖栨垚浜岃繘鍒跺彲浠ヨ〃紺轟負11100
銆銆濡傛灉瑕侀獙璇佺敤鎴鋒槸鍚︽湁鍒犻櫎錛㈢殑鏉冮檺錛屽氨鍙互閫氳繃浣嶄笌榪愮畻鏉ュ疄鐜般?br />銆銆鍦吉锝侊綎锝侀噷錛屼綅涓庤繍綆楄繍綆楃鍙蜂負錛?br />銆銆鍗蟲槸錛歩nt value = purview &((int)Math.pow(2,3));
銆銆浣犱細鍙戠幇錛屽綋鐢ㄦ埛鏈夋搷浣滄潈闄愭椂錛岃繍綆楀嚭鏉ョ殑緇撴灉閮戒細絳変簬榪欎釜鎿嶄綔闇瑕佺殑鏉冮檺鍊鹼紒
鍘熺悊錛?br />浣嶄笌榪愮畻錛岄【鍚嶆濅箟灝辨槸瀵逛綅榪涜涓庤繍綆楋細
浠ヤ笂闈㈢殑寮忓瓙涓轟緥錛歱urview & 2^3 涔熷氨鏄28&8
灝嗗畠浠寲鎴愪簩榪涘埗鏈?br />銆11100
錛?01000
-------------------
銆 01000 == 8(鍗佽繘鍒?銆錛濓紳銆2^3
鍚岀悊錛屽鏋滆楠岃瘉鏄惁鏈夊垹闄わ肌錛嶏紞錛?鐨勬潈闄?br />鍙互鐢細purview &((int)Math.pow(2,0));
鍗籌細
銆11100
錛?00001
------------------------
銆 00000 == 0(鍗佽繘鍒?銆銆錛侊紳銆2^0
銆銆榪欑綆楁硶鐨勪竴涓紭鐐規槸閫熷害蹇傚彲浠ュ悓鏃跺鐞嗭籍涓潈闄愶紝璁劇疆錛瑙掕壊錛?br />銆銆濡傛灉鎯抽獙璇佹槸鍚﹀悓鏃舵湁鍒犻櫎錛★紞錛嶏紞0鍜屽垹闄わ饑錛嶏紞錛?鐨勬潈闄?br />銆銆鍙互鐢╬urview&(2^0+2^3)==(2^0+2^3)?true:false;
銆銆璁劇疆澶氳鑹茬敤鎴楓傛牴鎹潈闄愬煎垽鏂敤鎴風殑瑙掕壊銆傘傘?/p>
銆銆涓嬮潰鎻愪緵涓涓猨ava鐨勫崟鎿嶄綔鏉冮檺鍒ゆ柇鐨勪唬鐮侊細
//userPurview鏄敤鎴峰叿鏈夌殑鎬繪潈闄?br />//optPurview鏄竴涓搷浣滆姹傜殑鏉冮檺涓轟竴涓暣鏁幫紙娌℃湁緇忚繃鏉冪殑錛侊級
public static boolean checkPower(int userPurview, int optPurview){
銆銆int purviewValue = (int)Math.pow(2, optPurview);
銆銆return (userPurview & purviewValue) == purviewValue;
}
銆銆褰撶劧錛屽鏉冮檺鐨勯獙璇佸彧瑕佹墿灞曚竴涓嬪氨鍙互浜嗐?br />銆銆鍑犵偣娉ㄦ剰浜嬮」錛氶鍏堬紝涓涓郴緇熷彲鑳芥湁寰堝鐨勬搷浣滐紝鍥犳錛岃寤虹珛鏁版嵁瀛楀吀錛屼互渚挎煡闃咃紝淇敼鏃朵嬌鐢ㄣ傚叾嬈★紝濡傛灉鐢ㄦ暟鎹簱鍌ㄥ瓨鐢ㄦ埛鏉冮檺錛岃娉ㄦ剰鏁板肩殑鏈夋晥鑼冨洿銆傛搷浣滄潈闄愬艱鐢ㄥ敮涓鐨勬暣鏁幫紒Java鐨刬nt綾誨瀷鏈澶氬彲浠ュ偍瀛?1涓潈闄愬拰錛庡鏋滆秴榪囷紝鍙互閫夋嫨鍏跺畠鏁版嵁綾誨瀷錛岃屼笖寤鴻涓嶅悓妯″潡錛屼嬌鐢ㄥ涓潈闄愬彉閲忥紟