用一个数来保存多个开关

int nHasGetLv = m_pPlayer->m_vars.get_var_n("nVipYBTime");
		int nNeedNum = pow(2, index - 1);
		if (nHasGetLv % (nNeedNum*2) < nNeedNum)
		{
		    m_pPlayer->m_vars.set_var_n("nVipYBTime", nNeedNum+nHasGetLv, true);
		 }

除了用位来表,还可以用以上这种方法。原理:

2^0+2^1+2^2+2^3+.......+2^(n-1) < 2^n
时间: 2024-10-25 14:51:04

用一个数来保存多个开关的相关文章

C++找数组中只出现一次的两个数并保存(牛客剑指offer)

//////////////////////////////////// //一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字. //心得:开始我以为是只出现一次的一个数,题中确是有2个只出现一次的数 //数组从i=0,开始,另一个j=i+1开始,当出现一个相等的我就把它保存在我新建的数组里面b[n/2+1], //当j==n时,说明在i位置之后没有跟a[i]相等的数值了,但是不能保证前面没有, //于是这里我保存在b数组里面的数据就起作用了,再遍历一遍

6、自动操作

先来回忆下我们提到过的加法器: 从图中可以看出,8位锁存器利用触发器来保存8位数据.使用这个设备时,首先需要按下清零开关使锁存器中的内容全部为0,然后通过开关输入第一个数.加法器只是简单的将这个数字和锁存器输出的0进行求和,因此相加的结果与原先输入的数字是一样的.按下相加开关可以把这个数保存在锁存器中,最后会点亮某些灯泡以显示它.现在通过开关输入第二个数,加法器把它与已经存放在锁存器的第一个数相加.再次按下相加开关,就可以把相加的结果存入锁存器中,通过灯泡显示这个结果.通过这种方式,可以把一串数

《Redis设计与实现》学习笔记-服务端

Redis服务器负责与多个客户端建立连接,处理客户端请求,保存各个数据库状态.通过使用由I/O多路复用技术实现的事件处理器,Redis服务器采用单线程单进程处理客户端命令请求.Redis通过redisServer结构来记录服务端的各种状态. 命令请求执行过程 1.客户端发送命令请求,客户端将命令请求转换成协议格式. 2.服务端读取命令请求,将命令请求缓存在客户端输入缓冲区中,对输入缓冲区中的命令进行分析把参数和参数个数分别保存到客户端状态的argv属性和argc属性中,然后调用命令执行器执行指定

Physics2D.Linecast中的参数layerMask

运用: Physics2D.Linecast(start,end,1<<LayerMask.NameToLayer("Ground")); 1.首先引入'|'.'&'.'~'的概念 与(交集):10000001 & 10000100 == 10000000 或(并集):10000001 | 10000100 == 10000101 非(反转):10000001 == ~01111110 2.int myLayerMask = 1 << curLa

1-6计算机输入和输出

如果无法与外界进行联系,计算机的CPU,存储器再强大也没有任何的用处.因此我们需要在我们的模型机上加上输入与输出这才能构成一个完整的计算机模型.这就是冯·诺依曼计算机的五大组成部分.分别是运算器.控制器.存储器.输入设备和输出设备. 现在我们就主要来介绍输入设备和输出设备.根据冯诺依曼结构的要求,计算机要执行的程序首先需要通过输入设备传送到存储器中,那么这个过程是如何完成的呢?就让我们来看一看冯诺依曼这个时代所用的计算机.当时编写程序并不像我们现在这样方便程序员需要在长长的纸带上打上小孔若干个小

hdu 4006 The kth great number(优先队列)

The kth great number Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65768/65768 K (Java/Others) Total Submission(s): 6982    Accepted Submission(s): 2837 Problem Description Xiao Ming and Xiao Bao are playing a simple Numbers game. In a roun

mosquitto在Linux环境下的部署/安装/使用/测试

mosquitto在Linux环境下的部署 看了有三四天的的源码,(当然没怎么好好看了),突然发现对mosquitto的源码有了一点点感觉,于是在第五天决定在Linux环境下部署mosquitto. 使用传统源码安装步骤: 步骤1:http://mosquitto.org/files/source/官网下载源码,放到Linux环境中.解压后,找到主要配置文件config.mk,其中包含mosquitto的安装选项,需要注意的是,默认情况下mosquitto的安装需要OpenSSL(一个强大的安全

格式化字符串攻击原理及示例

一.类printf函数簇实现原理 类printf函数的最大的特点就是,在函数定义的时候无法知道函数实参的数目和类型. 对于这种情况,可以使用省略号指定参数表. 带有省略号的函数定义中,参数表分为两部分,前半部分是确定个数.确定类型的参数,第二部分就是省略号,代表数目和类型都不确定的参数表,省略号参数表中参数的个数和参数的类型是事先的约定计算出来的,每个实参的地址(指针)是根据确定参数表中最后一个实参的地址算出来的. 这里涉及到函数调用时的栈操作.函数栈的栈底是高地址,栈顶是底地址.在函数调用 时

Project Euler 98:Anagramic squares 重排平方数

Anagramic squares By replacing each of the letters in the word CARE with 1, 2, 9, and 6 respectively, we form a square number: 1296 = 362. What is remarkable is that, by using the same digital substitutions, the anagram, RACE, also forms a square num