2的指数算法唯一算包含信息

需求:

算法映射: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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值