package myjava; /** * * ================================================ * name: FlagUtil * guide: * author: kimonik * version: 1.0 * date: 2019/7/18 * description: 二进制状态控制辅助类,最多可以拥有三十二个状态控制 * introduce: * history: * =================================================== */ @SuppressWarnings("unused") public class FlagUtil { // public static final int FIRST_FLAG = 0b1; // public static final int SECOND_FLAG = 0b10; // public static final int THIRD_FLAG = 0b100; // public static final int FOURTH_FLAG = 0b1000; // public static final int FIFTH_FLAG = 0b10000; // public static final int SIXTH_FLAG = 0b100000; // public static final int SEVENTH_FLAG = 0b1000000; // public static final int EIGHTH_FLAG = 0b10000000; // public static final int NINTH_FLAG = 0b100000000; // public static final int TENTH_FLAG = 0b1000000000; // public static final int ELEVENTH_FLAG = 0b10000000000; // public static final int TWELFTH_FLAG = 0b100000000000; // public static final int THIRTEENTH_FLAG = 0b1000000000000; // public static final int FOURTEENTH_FLAG = 0b10000000000000; // public static final int FIFTEENTH_FLAG = 0b100000000000000; // public static final int SIXTEENTH_FLAG = 0x8000; // public static final int SEVENTEENTH_FLAG = 0b10000000000000000; // public static final int EIGHTEENTH_FLAG = 0b100000000000000000; // public static final int NINETEENTH_FLAG = 0b1000000000000000000; // public static final int TWENTY_FLAG = 0b10000000000000000000; // public static final int TWENTY_FIRST_FLAG = 0b100000000000000000000; // public static final int TWENTY_SECOND_FLAG = 0b1000000000000000000000; // public static final int TWENTY_THIRD_FLAG = 0b10000000000000000000000; // public static final int TWENTY_FOURTH_FLAG = 0b100000000000000000000000; // public static final int TWENTY_FIVE_FLAG = 0b1000000000000000000000000; // public static final int TWENTY_SIXTH_FLAG = 0b10000000000000000000000000; // public static final int TWENTY_SEVENTH_FLAG = 0b100000000000000000000000000; // public static final int TWENTY_EIGHTH_FLAG = 0b1000000000000000000000000000; // public static final int TWENTY_NINTH_FLAG = 0b10000000000000000000000000000; // public static final int THIRTIETH_FLAG = 0b100000000000000000000000000000; // public static final int THIRTY_FIRST_FLAG = 0b1000000000000000000000000000000; // public static final int THIRTY_SECOND_FLAG = 0b10000000000000000000000000000000; // private static String content = "First, second, third, fourth, fifth, Sixth," + // "Seventh, eighth, ninth, tenth, eleventh, twelfth," + // " thirteenth, fourteenth, fifteenth, sixteenth, seventeenth, eighteenth, " + // "nineteenth, twenty,twenty_first, twenty_second, twenty_third, twenty_fourth,Twenty_five, " + // "twenty_sixth, twenty_seventh, twenty_eighth, twenty_ninth, thirtieth,thirty_first, thirty_second"; // // public static void toUpperCase() { // String[] temp = content.split(","); // String zero = "1"; // for (int i = 0; i < temp.length; i++) { // if (i != 0) { // zero += "0"; // } // System.out.println("toUpperCase=" + "public static final int " + temp[i].toUpperCase() + "_FLAG =" + // "0x" + Integer.toHexString(Integer.valueOf(zero, 2)) + ";"); // System.out.println("toUpperCase=" + "public static final int " + temp[i].toUpperCase() + "_FLAG =" + // "0b" + zero + ";"); // } // } // public static void main(String[] args) { // toUpperCase(); // } public static final int MASK_FLAG = 0; public static final int FIRST_FLAG = 0x1; public static final int SECOND_FLAG = 0x2; public static final int THIRD_FLAG = 0x4; public static final int FOURTH_FLAG = 0x8; public static final int FIFTH_FLAG = 0x10; public static final int SIXTH_FLAG = 0x20; public static final int SEVENTH_FLAG = 0x40; public static final int EIGHTH_FLAG = 0x80; public static final int NINTH_FLAG = 0x100; public static final int TENTH_FLAG = 0x200; public static final int ELEVENTH_FLAG = 0x400; public static final int TWELFTH_FLAG = 0x800; public static final int THIRTEENTH_FLAG = 0x1000; public static final int FOURTEENTH_FLAG = 0x2000; public static final int FIFTEENTH_FLAG = 0x4000; public static final int SIXTEENTH_FLAG = 0x8000; public static final int SEVENTEENTH_FLAG = 0x10000; public static final int EIGHTEENTH_FLAG = 0x20000; public static final int NINETEENTH_FLAG = 0x40000; public static final int TWENTY_FLAG = 0x80000; public static final int TWENTY_FIRST_FLAG = 0x100000; public static final int TWENTY_SECOND_FLAG = 0x200000; public static final int TWENTY_THIRD_FLAG = 0x400000; public static final int TWENTY_FOURTH_FLAG = 0x800000; public static final int TWENTY_FIVE_FLAG = 0x1000000; public static final int TWENTY_SIXTH_FLAG = 0x2000000; public static final int TWENTY_SEVENTH_FLAG = 0x4000000; public static final int TWENTY_EIGHTH_FLAG = 0x8000000; public static final int TWENTY_NINTH_FLAG = 0x10000000; public static final int THIRTIETH_FLAG = 0x20000000; public static final int THIRTY_FIRST_FLAG = 0x40000000; public static final int THIRTY_SECOND_FLAG = 0x80000000; /** * 添加状态 */ public static int addFlag(int mask, int flag) { return mask | flag; } /** * 移除状态 */ public static int clearFlag(int mask, int flag) { return mask & ~flag; } /** * 是否拥有给定标识 true--拥有,false--没有 */ public static boolean haveFlag(int mask, int flag) { return (mask & flag) != 0; } }
二进制状态控制
最新推荐文章于 2023-08-15 13:45:55 发布