//取Long的前三位作爲標誌位
int flag_count = 3;
int capacity_count = Long.SIZE-flag_count;
System.out.println(Long.SIZE);
System.out.println(Long.toBinaryString(-1L<<capacity_count)); //1110 -> RUNNING(運行)
System.out.println(Long.toBinaryString(0L<<capacity_count)); //0000 -> SHUTDOWN(關閉)
System.out.println(Long.toBinaryString(1L<<capacity_count)); //0010 -> STOP(停止)
System.out.println(Long.toBinaryString(2L<<capacity_count)); //0100 -> TIDYING(整理)
System.out.println(Long.toBinaryString(3L<<capacity_count)); //0110 -> TERMINATED(終止)
long RUNNING = -1L<<capacity_count;
long SHUTDOWN = 0L<<capacity_count;
long STOP = 1L<<capacity_count;
long TIDYING = 2L<<capacity_count;
long TERMINATED = 3L<<capacity_count;
long capacity = 0b1111111111111111111111111111111111111111111111111111111111111L;
//值的計數
System.out.println((RUNNING+999L)&capacity);
//值的狀態
System.out.println(((TERMINATED+1L)&~capacity)>>capacity_count);