博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java 二进制
阅读量:6735 次
发布时间:2019-06-25

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

hot3.png

115618_icpC_1389206.png

按位与、或、异或等运算方法:

按位与运算符(&)

运算规则:0&0=0;   0&1=0;    1&0=0;     1&1=1;

 即:两位同时为“1”,结果才为“1”,否则为0。

应用:

假设我们规定一个人有听,说,读,写,四个权限。

用二进制位0111 0000表示,第7,6,5,4位对应听,说,读,写,四个权限。1表示有权限,0表示无权限。

如果服务端给我们传递了一个112,那么他有什么权限呢?

将112转换成二进制:01110000,可见:他有听,说,读的权限。

那么用程序怎么判断某一位是否是1呢?

我们可以用2的6,5,4,3次方,分别跟传递进来的112进行与运算。如果结果是0,表示无权限。否则表示有权限。

112   0111 0000       传递的值

2^6   0100 0000       相与结果不是0,第7位有听权限。

2^5   0010 0000       相与结果不是0,第6位有说权限。

2^4   0001 0000       相与结果不是0,第5位有读权限。

2^3   0000 1000       相与结果为0,第4位没有写权限。

两位同时为“1”,结果才为“1”,否则为0。

总结:传递的值与某位相与的结果如果是0表示某位上没有权限。

转载于:https://my.oschina.net/u/1389206/blog/661353

你可能感兴趣的文章
11个Linux基础面试问题
查看>>
《嵌入式 Linux C 语言应用程序设计(修订版)》一导读
查看>>
《Python金融大数据分析》一2.3 延伸阅读
查看>>
Android View事件传递详解
查看>>
Elasticsearch-SQL
查看>>
我的失败与伟大 —— 上市之后的规划
查看>>
【Spark Summit East 2017】不必犹豫,使用Spark 2.0结构化流
查看>>
HTTPFS: 基于HTTP操作hadoop hdfs文件系统
查看>>
使用jquery获取父元素或父节点的方法
查看>>
如何让双十一数据大屏讲出故事?设计有口诀
查看>>
浮窗系列之窗口与用户输入系统
查看>>
swing效果点击下拉框自动填充文本框
查看>>
UML之活动图
查看>>
[收藏学习]安全性相关
查看>>
测来测去,感觉REQUESTS最实在
查看>>
powershell 模拟IE行为
查看>>
细说ES7 JavaScript Decorators
查看>>
最好的团队
查看>>
Objective-C之@类别小实例
查看>>
IOS的唯一标识符问题(转)
查看>>