需求:
算法映射:1=人,2=名,4=性,8=别,16=无,32=天,... ,1024=就,......
通过给你一个参数1027判断包括哪些字
java 方法实现如下:
import java.text.DateFormat;
import java.text.ParseException;import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class alertModeFunction {
public static void main(String[] args) throws ParseException {
//int alert_mode=3075;
int alert_mode=1027;
List<Integer> arraylist = new ArrayList<Integer>();
int mod = 1;
int oneAlertMode = 0;
int alert_mode_in=0;
while (alert_mode > 0) {
alert_mode_in = alert_mode - mod;
if (alert_mode_in == 0) {
oneAlertMode = mod;
} else {
while (alert_mode_in >= 0) {
mod = mod * 2;
alert_mode_in = alert_mode - mod;
}
oneAlertMode = mod / 2;
}
alert_mode = alert_mode - oneAlertMode;
arraylist.add(oneAlertMode);
mod = 1;
}
for(int i=0;i<arraylist.size();i++){
System.out.println("===>>>"+arraylist.get(i).toString());
}
}
}
输出:
===>>>1024
===>>>2
===>>>1