转自:http://blog.csdn.net/buyaore_wo/article/details/6878991
直接给例子吧!例子中将讲解 1.权限表示 2.权限判断 3.添加权限 4.取消权限public class Test {
/**
* @param args
*/
public static void main(String[] args) {
/**
* 四种权限 ,当前定义为int,以下二进制表示只取后四位作说明
*/
// 添加
int c = 1;// ...0001
// 查询
int r = 2;// ...0010
// 修改
int u = 4;// ...0100
// 删除
int d = 8;// ...1000
/**
*
* 大家可以观察四种权限的二进制表示的规律 ,都是2的N次方,
* 就表示本身,添加权限有最后一位为其它为0,查询倒数第二位为1其它都为0,修改倒数第三个为1其它都为0,删除倒数第四个为1其它都为0
*
*/
/**
*1111---- 这样表示有哪种权限时可以用 |(按位或) 操作
*
*/
// 用户A有添加和修改权限
int usera = c | r | u;
// 用户B有添加和删除权限
int userb = c | d;
/**
* 2222---- 判断用户是否有某种权限用用户权限和要判断的权限进行 &(按位与) 操作,结果为要判断的权限值时表示用户有此权限,否则没有此权限
*/
if ((usera & u) == u) {
System.out.println("用户a有更新权限");
} else {
System.out.println("用户a没有有更新权限");
}
/**
* 3333---- 给用户添加权限用用户权限和要添加的权限|(按位或) 操作再覆盖之前权限值
*/
if ((userb & u) == u) {
System.out.println("用户b有更新权限");
} else {
System.out.println("用户b没有更新权限");
}
// 给用户b添加更新权限
userb = userb | u;
if ((userb & u) == u) {
System.out.println("用户b有更新权限");
} else {
System.out.println("用户b没有更新权限");
}
/**
* 4444---- 取消用户某种权限,用用户权限和要取消的权限按位取反后进行按位 操作,再覆盖之前权限值
*/
if ((usera & r) == r) {
System.out.println("用户a有查询权限");
} else {
System.out.println("用户a没有查询权限");
}
//取消用户a的查询权限
usera = usera & (~r);
if ((usera & r) == r) {
System.out.println("用户a有查询权限");
} else {
System.out.println("用户a没有查询权限");
}
}
}
分享到:
相关推荐
总结来说,用二进制做权限设置是一种常见的系统编程技巧,它利用位运算高效地管理文件或资源的访问权限。这个程序可能是为了演示如何在不同的编程语言中实现这样的功能,对于理解操作系统底层的工作机制以及提升安全...
通过以上两个函数的实现,我们可以轻松地在图片和二进制流之间进行转换。这对于数据库存储、网络传输等应用场景非常有用。同时,我们也需要注意实际应用中的各种细节问题,确保程序的稳定性和安全性。
用户可以使用该工具打开和查看二进制文件的内容,查看其结构和模式,这对于软件开发者、系统管理员以及安全研究人员来说非常有用。例如,当需要查看或修改磁盘映像、内存转储或网络封包时,这样的工具就显得不可或缺...
本文将深入探讨如何将数字转换为二进制串,并进行运算以判断特定位置的数字是否为0,以及如何利用这种技术实现灵活的权限管理。 首先,让我们了解二进制。二进制是计算机科学中的基础,它只使用0和1两个数字表示...
MySQL二进制转换工具主要涉及...综上所述,MySQL二进制转换工具涉及了数据库的二进制数据处理、文件传输、权限管理以及网络安全等多个方面。在实际操作中,需要兼顾效率和安全性,遵循最佳实践来确保系统的稳定和安全。
在数据库中,二进制流常用于存储无法直接用文本格式表示的数据。 2. **SQL Server 2008与图片存储**: - **创建表结构**:在SQL Server中,可以创建一个包含BLOB字段的表,如`ImagesTable`,包含一个名为`...
"二进制文件查看器合集.rar"这个压缩包文件,正如其名,集合了多种二进制文件查看工具,适用于Windows 7操作系统,并且推荐在管理员模式下运行,以获取更全面的权限,确保能够读取和分析任何系统级别的二进制数据。...
支持16进制,10进制,二进制,8进制查看。 可自定义列数,独特码查找、不定帧长查看。方便数据帧分析。 免安装。 使用时可能需要先使用管理员权限启动。 注意事项: 1,一定要解压出来再用。 2,默认需要先打开bes,...
在计算机科学中,二进制文件(Binary File)是一种存储数据的特殊文件,其中的数据以机器可理解的二进制格式编码。与文本文件不同,二进制文件不依赖特定字符编码,而是直接包含原始数据,如图像、音频、视频、程序...
在Android系统中,SU二进制文件是用于获取超级用户权限的关键组件,它允许用户以root权限执行操作。"解决SU二进制文件过旧的问题"这个标题表明我们需要讨论的是如何更新或修复已经过时的SU二进制文件,以确保系统的...
分析`AndroidManifest`的二进制文件通常需要对Android的资源管理和二进制文件格式有深入的理解。可以借助反编译工具,如Apktool、dex2jar等,来查看和解析二进制`AndroidManifest`。这些工具能够将二进制数据重新...
你需要创建一个能够容纳图片二进制数据的字段,通常使用`VARBINARY(MAX)`或`BLOB`类型。 - 使用ADO.NET或者Entity Framework等ORM(对象关系映射)框架与数据库进行交互。例如,你可以创建一个`SqlCommand`对象来...
处理二进制文件时,需要注意数据溢出、文件权限、内存管理等问题。确保正确处理文件异常,如无法打开、读取或写入文件的情况。此外,当读取未知格式的二进制文件时,避免试图解析超出文件长度的数据,以防止缓冲区...
在本文中,我们将深入探讨如何使用Visual Studio 2008(VS2008)中的C#语言来实现一个二进制搜索功能,并能够修改进程中运行的二进制代码。这个功能允许开发者对程序的内存进行操作,将二进制数据转化为字符串,从而...
通过这个小工具,开发者可以更便捷地进行二进制文件的管理,尤其是批量清零操作,节省了手动操作的时间,提高了工作效率。在实际应用中,这样的工具还可以扩展,例如添加预览功能、支持多种操作(如替换、查找等)...
这种二进制文件格式自1980年代中期以来一直存在,并在多个版本的Word中进行了改进和发展。本文将深入探讨DOC文件的结构、组成部分以及解析过程。 1. **文件结构** DOC文件由一系列二进制数据组成,这些数据包含了...
但是,由于Android自身的特性(如应用程序的安全沙箱、资源管理机制等),直接在Android上运行二进制文件与在普通Linux系统上有所不同。 #### 知识点二:传统方式与新方法的区别 在Android中,通常有两种方式来...
在大多数类Unix系统中,如Linux,用户可以直接在终端中运行这个文件,通常使用命令`./tcpdump`(可能需要赋予执行权限,用`chmod +x tcpdump`)来启动程序。 使用Tcpdump时,可以指定各种参数来控制抓包的行为。...
在IT领域,尤其是在数据库管理中,将图片以二进制数据存储是一种常见的做法。这种方式能够有效地处理和存储非结构化数据,如图像、音频或视频文件。本文将深入探讨“图片以二进制存取数据库”的概念,以及如何在C#...
3. 整体性:将头像数据存储在数据库中,便于进行数据备份和恢复,同时易于实现权限控制和访问管理。 三、操作流程 1. 读取图像:使用编程语言(如Python、Java、PHP等)的库函数读取图像文件,将其转化为二进制流...