博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java &|~<< 位运算设计权限代码!查询权限、增加权限、删除权限
阅读量:6965 次
发布时间:2019-06-27

本文共 2236 字,大约阅读时间需要 7 分钟。

hot3.png

java &|~<<   位运算设计权限代码!查询权限、增加权限、删除权限

关于二进制 转换 &|~^>><<>>> 请参考我前几篇博文

package org.rui.temp;public class Permission {	/**	 * @author liangrui	 * @qq     1067165280	 * 这种算法的一个优点是速度快	 */			/******************************************	 * 这是做测试相当于从数据库里取出的权限值  /一般根据一个模块id 取出它的crud 值就可以了				 删除A---0		修改A---1		添加A---2		删除B---3		修改B---4		添加B---5		...... 理论上可以有N个操作				用户有权限:添加A---2;删除B---3;修改B---4		   		2的2次方+2的3次方+2的4次方=28purview权限值			*******************************************/		static int purview=28;	static int BdelPermi=3;//删除B=3	static int BaddPermi=5;//添加B=5	static int BupdaetPermi=5;//修改B==4	public static void main(String[] args) {					//根据用户拥有的权限值,和功能模块的权限值来判断 用户是否拥有该操作模块的权限		isPermission(purview, BdelPermi, BaddPermi, BupdaetPermi);				/**		 * purview 用户当前权限值				 * newValue 权限值		 * flag= true 为增加,false 删除		 */								int modePermValue=3; //相关模块的id 这里做测试 就省略				//删除B---3     这里做测除测试		int newValue=3;		boolean flag=false;				//更改用户的权限  		purview=setPermission(purview,modePermValue,newValue,flag);				System.out.println("-------------修改权限后------------------------");         //再一次查询相关权限		isPermission(purview, BdelPermi, BaddPermi, BupdaetPermi);								//添加B---5      这里做为用户增加一个权限		newValue=5;		flag=true;		//更改用户的权限  		purview=setPermission(purview,modePermValue,newValue,flag);				System.out.println("-------------修改权限后------------------------");         //再一次查询相关权限		isPermission(purview, BdelPermi, BaddPermi, BupdaetPermi);	}	private static void isPermission(int purview, int BdelPermi, int BaddPermi,			int BupdaetPermi) {				// 通过移位得到权限的二进制码		int Bdel=1<

关于<<运算代码

package org.rui.temp;public class GetBin {	/**	 * @param 根据权限值来进行位运算,二进制进多少位	 */	public static void main(String[] args) {	int val=3;	//System.out.println(Integer.toBinaryString(val));    //32位来运算的,前面的0这里省略	System.out.println(1<<0);//01<<0=01=1	System.out.println(1<<1);//01<<1=010=2	System.out.println(1<<2);//01<<2=0100=4	System.out.println(1<<3);//01<<3=01000=8	System.out.println(1<<4);//01<<4=010000=16	System.out.println(1<<5);//一直断续.......	System.out.println(1<<6);	System.out.println(1<<7);	System.out.println(1<<8);	System.out.println(1<<9);	System.out.println(1<<10);	System.out.println(1<<11);			}}

转载于:https://my.oschina.net/pangzhuzhu/blog/301828

你可能感兴趣的文章
第一次作业-准备篇
查看>>
python 百万级别类实例实现节省内存
查看>>
变量提升
查看>>
js中级
查看>>
[转]OC与JS的交互详解
查看>>
mysql Encryption and Compression Functions
查看>>
spring mvc 框架核心文档
查看>>
test
查看>>
JQuery Autocomplete
查看>>
防盗链[referer]
查看>>
linux指令--ls
查看>>
Oracle求日期的格式
查看>>
IO BufferedOutputStream和BufferedInputStream
查看>>
Websphere 案例记录
查看>>
DEDECMS教程:首页实现分页的两种方法
查看>>
蓝桥杯——说好的进阶之买不到的数目
查看>>
java回调简单实现
查看>>
linux下安装swftools工具
查看>>
ORA-01078: failure in processing system parameters
查看>>
Concurrency Managed Workqueue(三)创建workqueue代码分析
查看>>