仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 560|回复: 10
打印 上一主题 下一主题

[其他Linux] Linux教程之使用位运算完成权限把持仓酷云

[复制链接]
柔情似水 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:29:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
学习linux,就意味着更快的开发效率,等更多关于软件本身或者说操作系统本身的理解。
比来项目中要把一批权限把持信息写进一个4字节的十进制数字中,接纳了位运算,基础道理在这里先容一下。
位运算的运算对象是二进制的位,速率快,效力高,并且节俭存储空间,位运举动当作权限把持又相称地天真。可是,位运算也有很年夜的范围,由于在32位盘算机上,位移不克不及凌驾32次,这就请求权限数目不凌驾32种。
以下完成了相似LINUX文件体系的权限把持。
-rwx-rwx-rwx这个在linux中暗示777,我们来看第一段7
x可实行1<<0
w可写1<<1
r可读1<<2
2^0=1,响应2进数为”0001&Prime;(2的0次方,下同)
2^1=2,响应2进数为”0010&Prime;
2^2=4,响应2进数为”0100&Prime;
2^3=8,响应2进数为”1000&Prime;
要判别一个数在某些数局限内就能够利用&运算符(数值从下面的表中得来)
如:7=4|2|1 (能够复杂了解成7=4+2+1),用&来操纵,能够晓得7&4、7&2、7&1都是真的,而假如7&8则是假的。
<?php
//界说权限
define(‘READ’,1<<2);//十进制4
define(‘WRITE’,1<<1);//十进制2
define(‘EXCUTE’,1<<0);//十进制1
//付与权限
$user_permission=READ|WRITE;
//考证权限
echo‘可读:’,($user_permission&READ)?‘Yes’:‘No’,“n”;
echo‘可写:’,($user_permission&WRITE)?‘Yes’:‘No’,“n”;
echo‘可实行:’,($user_permission&EXCUTE)?‘Yes’:‘No’,“n”;
?>
详解php位运算

  • $a&$band(按位与)
  • $a|$bor(按位或)
  • $a^$bXor(按位异或)
  • ~$aNot(按位非)
  • $a<<$bShiftleft(左移)
  • $a>>$bShiftright(右移)
$a&$b按位与把$a和$b中都为1的位设为1;
例:10&12=8
101010
121100
10008
$a|$b按位或把$a或$b中有一个为1的为设为1;
例:10|12=14
101010
121100
111014
$a^$b按位异或
例:10^12
101010
121100
01106
~a按位非把$a中的为0的为设为1,1的为设为0
例:~10=
1010101111111111111111111111111111111111111111111111111111111111110101-11
$a<<$b左移把$a中的为向左挪动$b次(每次挪动都暗示乘以2);
例:1<<10=1024
1(1)左移10位10000000000(1024)
相称于1*2的10次方。
$a>>$b右移把$a中的为向右挪动$b次(每次挪动都暗示除以2);
例:1024<<2=1256
10000000000(1024)右移2位就是100000000(256)

常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题都是很基的。
精灵巫婆 该用户已被删除
沙发
发表于 2015-1-21 07:46:53 | 只看该作者
然我们对Linux的学习首先是通过对它的产生,发展,到今天仍然在不断完善开始的。
小女巫 该用户已被删除
板凳
发表于 2015-1-23 19:04:44 | 只看该作者
一定要养成在命令行下工作的习惯,要知道X-window只是运行在命令行模式下的一个应用程序。在命令行下学习虽然一开始进度较慢。
若天明 该用户已被删除
地板
发表于 2015-1-31 19:29:01 | 只看该作者
虽然大家都比较喜欢漂亮的mm,但是在学 linux 的过程中,还是要多和“男人”接触一下:P 遇到问题的时候,出来看说和上网查之外,就是要多用 linux 下的 man 命令找找帮助。
admin 该用户已被删除
5#
发表于 2015-2-3 18:46:45 | 只看该作者
Windows有MS-DOS?方式,在该方式下通过输入DOS命令来操作电脑;Linux与Windows类似,也有命令方式,Linux?启动后如果不执行?X-WINDOWS,就会处于命令方式下,必须发命令才能操作电脑。?
谁可相欹 该用户已被删除
6#
发表于 2015-2-5 05:10:04 | 只看该作者
然我们对Linux的学习首先是通过对它的产生,发展,到今天仍然在不断完善开始的。
再现理想 该用户已被删除
7#
发表于 2015-2-11 04:53:57 | 只看该作者
我们自学,就这个循环的过程中,我们学习了基本操作,用vi,shell,模拟内存的分配过程等一些OS管理。
深爱那片海 该用户已被删除
8#
发表于 2015-2-28 17:01:56 | 只看该作者
Linux高手更具有鼓励新手的文化精神。如何在Linux社区获得帮助,需要说明的是你要有周全的思考,准备好你的问题,不要草率的发问。
飘飘悠悠 该用户已被删除
9#
发表于 2015-3-7 09:32:04 | 只看该作者
linux鸟哥的私房菜,第三版,基础篇,网上有pdf下的,看它的目录和每章的介绍就行了,这个绝对原创!
海妖 该用户已被删除
10#
发表于 2015-3-14 17:09:52 | 只看该作者
如果你有庞大而复杂的测试条件,尽量把它剪裁得越小越好。可能你会遇到这种情况,对于一个问题会出现不同内容回答,这时你需要通过实践来验证。
透明 该用户已被删除
11#
发表于 2015-3-21 12:20:38 | 只看该作者
学习Linux,应该怎样学,主要学些什么,一位Linux热心学习者,一段学习Linux的风云经验,历时十二个小时的思考总结,近十位网络Linux学习者权威肯定,为您学习Linux指明方向。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 01:54

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表