// 二进制开关标记算法
// 原理 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<Integer> list = new ArrayList<Integer>();
list = MarkDecodeByBinary(11);
int sum = MarkCodeByBinary(list);
System.out.println();
System.out.println(sum);
}
// 二进制开关标记算法_生成标记算法:
// 用二进制标记当前是否显示;1表示显示,0表示不显示
// 例如,标记的是星期一至星期日 那几天有闹钟提醒
// 例如,传入3 1 得到 10
static int MarkCodeByBinary(ArrayList<Integer> 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<Integer> MarkDecodeByBinary(int num) {
int mi = num;
ArrayList<Integer> list = new ArrayList<Integer>();
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;
}
分享到:
相关推荐
9. BCD(求BCD码):将二进制数转换为BCD(二进制编码的十进制)格式。 10. BIN(求二进制码):将非BCD格式的数值转换为二进制。 三、算术和逻辑运算指令: 1. ADD(加法):对两个数值进行加法运算。 2. SUB...
可以设置一个四位的二进制数来表示这四个开关的状态。例如,使用`1 表示第三个开关打开。 #### 五、总结 位运算符虽然在JavaScript中不是非常常用的运算符,但在特定的应用场景下,如高效处理大量数据、优化算法...
在习题中,每个状态由三位二进制数和一个接受或拒绝的标记组成,从而准确描述了自动机的所有可能状态以及它们之间的转换关系。 习题2.2.2则是关于自动机转移函数的一个归纳证明问题,这部分内容对于理解自动机的...
用户码通常是固定的,由一系列脉冲长度组成,代表特定的二进制数字。 3. 用户反码:为了提高数据的可靠性,用户码后会跟一个与其相反的码,即用户反码。通过比较这两个码是否一致,可以检查数据在传输过程中是否有...
3. **读取保持寄存器 (03)**:获取一个或多个保持寄存器中的当前二进制值。 4. **读取输入寄存器 (04)**:获取一个或多个输入寄存器中的当前二进制值。 5. **强置单线圈 (05)**:设置一个逻辑线圈的通断状态。 6. **...
- **为什么计算机用二进制计数**:二进制系统更容易实现物理表示(如电子开关),并且可以简化计算过程。 - **不同进制之间的换算**:了解如何在十进制、二进制、八进制和十六进制之间进行转换。 - **整数的加减运算...
3. 可能还有其他辅助文件,如数据表、说明文档或编译生成的二进制文件。 总的来说,这个压缩包提供了一个使用PLECS软件构建的电力电子模型,其中包含了模型的XML表示和用C/C++编写的控制算法源码,是进行电力电子...
包含两个掩码,并且所有文件既匹配第一个掩码,也匹配第二个掩码, 较小的子集 或者更精确的匹配拥有更高的优先权。例如,如果你用 *.cpp 和 f*.cpp 掩码, f*.cpp 拥有更高的优先权。 RAR 命令行语法 ~~~~~~...
1. 文件I/O:学习读写文本文件、二进制文件,以及使用MATLAB的文件系统函数。 2. 数据分析:包括统计分析、滤波处理、信号处理等内容,利用MATLAB进行实际数据处理。 3. App Designer:介绍MATLAB的图形用户界面...
学习者会学到如何读取和写入文本文件、二进制文件,以及如何处理数据文件,如CSV或Excel表格。 函数绘图是MATLAB的一大亮点,教程会详细解释如何绘制2D和3D图形,包括线图、散点图、柱状图、饼图以及曲面图等。此外...
系统,固实标志和老版本标记)被显示。变量 'b' 强迫 RAR 只输出单纯 的文件名,而没有其他任何的附加信息。 m[f] 移动到压缩文件中[只用于文件]。移动文件和目录会使压缩操作完成后它 们被删除。如果使用...
- 计算机基于电子开关工作,二进制正好对应两种状态。 - **不同进制之间的换算** - 如何将十进制数转换为二进制或其他进制数。 - **整数的加减运算** - 整数运算的实现方法。 - **浮点数** - 浮点数在计算机中的...
在可编程逻辑控制器中,可以单独对位进行操作,这在处理二进制或开关信号时非常有用。 例如,在布尔操作中,可以使用*VD或*AC等符号来标识不同的数据区。*VD代表数据区的位操作,而*AC代表累加器的位操作。这些符号...
8. **文件I/O操作**:了解如何在MATLAB中读写文本文件、二进制文件,以及如何操作MAT文件,保存和加载工作空间变量。 9. **MATLAB与外部程序接口**:MATLAB可以与其他编程语言如C、Fortran等交互,也可以调用系统...
八进制数转换为二进制数时,每一位八进制数都可以用三位二进制数来表示。 #### 8. E-mail发送机制 - **知识点**: 电子邮件的工作原理。 - **解析**: 错误。电子邮件并不会直接放入接收者的电脑中,而是先存放在邮件...
6. **文件输入输出**:MATLAB可以读取和写入各种格式的文件,如文本文件、二进制文件,以及CSV、Excel等数据文件。 7. **绘图与可视化**:MATLAB的绘图功能强大,可以绘制2D和3D图形,如线图、散点图、柱状图、饼图...
- **知识点解析**:二进制位(bit)是数据存储的基本单位,在计算机内部所有数据都是以二进制的形式存储的。每个二进制位只有两种状态:0或1。它是数据的最小单位。 - **知识点总结**:在计算机科学中,二进制位是...
二进制只有两个数字:0 和 1,这正好对应于电子开关的两种状态:开或关。 ### 2. 计算机存储系统 - **主存储器**:通常指的是RAM(随机访问存储器),这是一种易失性存储器,即断电后信息会丢失。主存储器主要用于...
包含两个掩码,并且所有文件既匹配第一个掩码,也匹配第二个掩码, 较小的子集 或者更精确的匹配拥有更高的优先权。例如,如果你用 *.cpp 和 f*.cpp 掩码, f*.cpp 拥有更高的优先权。 RAR 命令行语法 ~~~~~~...
从内容上来看,这段文字似乎是一系列的二进制数据和ASCII字符,这可能是用于说明协议数据单元格式的数据。 在通信协议中,通常需要定义一套规则,以保证数据能够在不同设备间准确无误地传输。这些规则可能包括数据...