首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

java中大整型BigInteger及setBit和testBit方法

最近在修改公司之前的项目,在项目中遇到了权限校验的问题,代码中出现了BigInteger的setBit()testBit()方法,之前未接触过,所以了解了下BigInteger。...再说说setBit()和testBit()方法 在项目中是使用BigInteger的这两个方法来进行权限效验的,利用菜单id生成对应权限效验码,把具体的权限设置为一个正整数值,如果一个用户有多个权限的话...,比如1,2权限,那么我们设置值的时候就是num.setBit(1),num.setBit(2),然后把返回的num值保存在session中,要验证是否有权限的话,只要从session中取得保存的num... setBit(int n) {         if (n < 0)             throw new ArithmeticException("Negative bit address")...如果每次有添加多个新的功能,那么就用这些功能编号依次给原来的角色编号执行setBit得到新的角色编号。

55120

Redis的GETBIT命令和SETBIT命令的实现机制

SETBIT命令用于设置指定二进制位数组中指定位置的位值,其实现机制如下:首先,Redis会查找或创建一个字符串对象来存储二进制位数组。该字符串对象的每个字节表示8个连续的二进制位。...SETBIT命令的语法为SETBIT key offset value,其中,key表示存储二进制位数组的键,offset表示要设置的位在二进制位数组中的偏移量,value表示要设置的位的值。...当执行SETBIT命令时,Redis会根据偏移量和位值计算出要操作的字节和位在字节中的位置。如果存储二进制位数组的字符串对象不够大,Redis会自动进行扩展。扩展后,Redis会将新增的部分设置为0。...总结SETBIT命令的实现机制主要涉及到内存中二进制位数组的创建、扩展、加载和位操作。通过计算偏移量和位值,将要操作的位设置为指定的位值,并将更新后的字节重新写回存储二进制位数组的字符串对象。

37171

如何统计百万用户在线状态-bitmap

基本使用SETBIT语法SETBIT key offset value设置或者清空 key 的 value 在 offset 处的 bit 值(只能是 0 或者 1)。...示例://设置setbit mykey 7 1//清空setbit mykey 7 0GETBIT返回 key 处存储的字符串值中偏移处的位值当偏移量超出字符串长度时,字符串被假定为具有 0 位的连续空间...登录setbit login:20240115 3 1用户4登录setbit login:20240115 4 1用户5登录setbit login:20240115 5 1用户2024年1月16号用登录情况用户...1登录setbit login:20240116 1 1用户2登录setbit login:20240116 2 1用户3登录setbit login:20240116 3 1用户4登录setbit login...:20240116 4 1用户2024年1月17号用登录情况用户1登录setbit login:20240117 1 1用户2登录setbit login:20240117 2 1用户4登录setbit

19910
领券