美文网首页
二进制开关标记算法

二进制开关标记算法

作者: 安易学车 | 来源:发表于2018-07-31 10:21 被阅读0次

// 二进制开关标记算法  

// 原理 00001010 = 2^1 + 2^3 = 10  表示1号和3号是开,其余是关  

// 例如 星期1和星期3 闹钟才提醒 加密就得到10  ,解码就得到 1和3   

// 用二进制标记当前是否显示;1表示显示,0表示不显示  

// 例如: 标记的星期一至星期日那几天有闹钟提醒  

// 传入 8 得到 3 表示星期3才提醒  

// 传入 10 得到 3 1 表示星期1 和星期3 才提醒  

static void MarkByBinary(int num) {  

int mi = num;  

while (num >= 1) {  

mi = (int) (Math.log(num) / Math.log(2));  

num = (int) (num - Math.pow(2, mi));  

System.out.println(mi);//输出  

    }  

}  

//---------------------完整算法演示-------------------//  

public static void main(String[] args) {  

ArrayList list =new ArrayList();  

list = MarkDecodeByBinary(11);  

int sum = MarkCodeByBinary(list);  

        System.out.println();  

        System.out.println(sum);  

    }  

// 二进制开关标记算法_生成标记算法:  

// 用二进制标记当前是否显示;1表示显示,0表示不显示  

// 例如,标记的是星期一至星期日 那几天有闹钟提醒  

// 例如,传入3 1 得到 10  

static int MarkCodeByBinary(ArrayList list) {  

int sum = 0;  

for (int i : list) {  

sum += (int) Math.pow(2, i);  

        }  

return sum;  

    }  

// 二进制开关标记算法_解码标记算法:  

// 用二进制标记当前是否显示;1表示显示,0表示不显示  

// 例如标记的是星期一至星期日 那几天有闹钟提醒  

// 例如,传入 8 得到 3 表示星期3才提醒  

// 例如,传入 10 得到 3 1 表示星期1 和星期3 才提醒  

static ArrayList MarkDecodeByBinary(int num) {  

int mi = num;  

ArrayList list =new ArrayList();  

while (num >= 1) {  

mi = (int) (Math.log(num) / Math.log(2));  

num = (int) (num - Math.pow(2, mi));  

System.out.println(mi);// 输出  

            list.add(mi);  

        }  

return list;  

    }  

相关文章

  • 二进制开关标记算法

    //二进制开关标记算法 //原理00001010=2^1+2^3=10表示1号和3号是开,其余是关 //例如星期1...

  • 垃圾回收算法有几种类型? 他们对应的优缺点又是什么?

    常见的垃圾回收算法有: 标记-清除算法、复制算法、标记-整理算法、分代收集算法 标记-清除算法 标记—清除算法包括...

  • jvm内存管理--GC算法

    垃圾搜集的算法主要有三种,分别是标记-清除算法、复制算法、标记-整理算法。 标记/清除算法 标记:标记的过程遍历所...

  • JVM读书笔记-垃圾回收算法-06

    垃圾回收算法一共分为四种 标记-清除算法、复制算法、标记-整理算法、分代收集算法 标记-清除算法标记清除算法是最开...

  • Java GC 的那些事(下)

    收集算法 垃圾收集算法主要有:标记-清除、复制和标记-整理。 1、标记-清除算法 对待回收的对象进行标记。 算法缺...

  • jvm系列之垃圾收集算法

    jvm系列之垃圾收集算法 1 标记-清除算法 标记-清除算法是最基础的算法,算法分为标记和清除两个阶段,首先标记出...

  • GC 算法

    标记-清除算法 最基础的收集算法是 “标记-清除”(Mark-Sweep)算法,顾名思义,算法分为 “标记” 和 ...

  • JVM:(GC)垃圾收集算法 学习笔记

    一.垃圾收集算法 类型 1.标记-清除 算法 2.复制 算法 3.标记-整理 算法 4.分代收集 算法 二.标记-...

  • 深入理解JVM2-垃圾收集算法

    标记-清除算法 “标记-清除”(Mark-Sweep)算法是最基础的收集算法,算法分为“标记”和“清除”两个阶段:...

  • Java垃圾回收算法

    垃圾回收算法分类 标记-清除算法 该算法分为「标记」与「清除」两个阶段. 标记-清除算法最基本的回收算法.后序的算...

网友评论

      本文标题:二进制开关标记算法

      本文链接:https://www.haomeiwen.com/subject/lzycvftx.html