使用BigInteger.setBit与BigInteger.testBit来实现权限控制
今天看到一个项目使用了BigInteger.setBit与BigInteger.testBit来实现权限控制,觉得很有趣,mark一下
首先,列出一下这两个方法的解释:
1.testBit方法的解释:
boolean java.math.BigInteger.testBit(int n)
Returns true if and only if the designated bit is set. (Computes ((this & (1<<n)) != 0).)
Parameters:
n index of bit to test.
Returns:
true if and only if the designated bit is set.
Throws:
ArithmeticException - n is negative.
意思就是将1左移n位,与this做&运算,其实就是判断当前数(要写成二进制)第n+1位上的数是不是为1,是的话返回true
2.setBit方法的解释
BigInteger java.math.BigInteger.setBit(int n)
Returns a BigInteger whose value is equivalent to this BigInteger with the designated bit set. (Computes (this | (1<<n)).)
Parameters:
n index of bit to set.
Returns:
this | (1<<n)
Throws: ArithmeticException - n is negative. 意思就是将1左移n位,与this对象做|运算,这样的话,就会将this的二进制格式的第n+1位的数变为1.这样很明显就和上一个方法形成一对, n可以作为某个功能编号,而角色可以使用setBit的方法设置编号,然后使用testBit来测试是不是含有n编号的功能。 如果每次有添加多个新的功能,那么就用这些功能编号依次给原来的角色编号执行setBit得到新的角色编号。
使用BigInteger.setBit与BigInteger.testBit来实现权限控制相关推荐
- Java基础知识强化87:BigInteger类之BigInteger加减乘除法的使用
1. BigInteger加减乘除法的使用 1 public BigInteger add(BigInteger val):加 2 public BigInteger subtract(BigInte ...
- biginteger 原理_Java BigInteger详解
BigInteger概述 可用于无限大的整数计算 所在的包 java.math.BigInteger; 构造函数 public BigInteger(String val) 成员函数 比较大小函数 p ...
- java biginteger string_String到BigInteger java
我试图从stdin中读取一些真正大的数字,并将它们添加在一起. 但是,要添加到BigInteger,我需要使用BigInteger.valueOf(long);: private BigInteger ...
- mysql biginteger java_java.math.BigInteger cannot be cast to java.lang.Integer以及mysql升级的问题...
java.math.BigInteger cannot be cast to java.lang.Integer以及mysql升级的问题 Mysql 8.0 原因是mysql升级到8.0,数据库驱动使 ...
- BigInteger详解
在Java中有两个类BigInteger和BigDecimal分别表示大整数类和大浮点数类,理论上能够表示无线大的数,只要计算机内存足够大. 这两个类都在 java.math.* 包中,因此每次必须在 ...
- java biginteger位数_JAVA 大数(BigInteger) 归纳总结
这里主要是归纳了一些他人博客上的对于JAVA大数处理的一些方法. 主要是BigInteger类的应用 转载虽然要注明出处...但是我已经找不到地址了...见谅 Ⅰ基本函数: 1.valueOf(par ...
- java中BigInteger用法的详解
在java中经常会遇到比较大的数,甚至超过了long型,那么该如何处理这些"大数据"呢?在java中有两个类BigInteger和BigDecimal分别表示大整数类和大浮点数类, ...
- Java中BigInteger类的使用方法详解,常用最全系列!
原创博文,欢迎转载,转载时请务必附上博文链接,感谢您的尊重. 在 Java 中,有许多数字处理的类,比如 Integer类,但是Integer类有一定的局限性. 我们都知道 Integer 是 Int ...
- java biginteger php_BigInteger
概述 软件包 类 使用 树 已过时 索引 帮助 JavaTM 2 Platform Standard Ed. 6 上一个类 下一个类 框架 无框架 摘要: 嵌套 | 字段 | 构造方法 | 方法 详细 ...
最新文章
- linux压缩和解压命令总结
- 重装JDK后Tomcat和Eclipse的配置
- FastJSON的依赖
- html5 窗口变形,HTML5画布(变形)
- Sublime Text 3 搭建 React.js 开发环境
- java下载json需要的包_jenkins 获取插件,下载插件提速,配置国内镜像
- Python_列表生成式
- 双非本科逆袭 拿下ACM金牌、字节和旷视offer、保研985!
- html可视区高度,你真的懂js获取可视区宽高吗
- 计算机odbc数据源管理位置,使用 ODBC 数据源管理器
- 多家广告聚合平台的混战:国内移动广告聚合平台大盘点
- Python贪吃蛇 (完整代码+详细注释+粘贴即食)
- LoadRunner压力测试:详细操作流程
- 为什么说美团的天花板是美团自己?
- 利用photoshop去掉图片中文字
- 21点游戏双人对战(javaweb形式)
- jqweui的picker动态加载数据
- php小写金额转大写金额
- 【美赛优秀论文模板】MCM 2016 A:洗个热水澡
- MTP in Android
热门文章
- android studio 抽屉,Android Studio 的抽屉导航
- 2022年教培行业研究报告
- 能用10年的电动车牌子是什么?绿源电动车了解一下吧
- 智能交通系统,可以提高通行效率,节约能源,降低空气污染的水平
- 再谈模拟器上网!!(Symbian OS S60)(转)
- 万年历-java课程设计题_万年历-Java课程设计题(eclipse编辑器)
- PDF格式转WORD要钱?Python几秒就能完成。
- PHP资源模板——模板终结者
- 《勋伯格和声学》读书笔记(五):小调中的七和弦及其转位,没有共同音的和弦的连接
- python中matplotlib中文乱码问题一劳永逸的解决。(亲测可行,彻底解决,不用额外附加相关代码)