300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > 你所不知道的php位运算符使用技巧总结

你所不知道的php位运算符使用技巧总结

时间:2022-12-05 18:59:50

相关推荐

你所不知道的php位运算符使用技巧总结

后端开发|php教程

使用技巧,php,不知道,运算符,总结

后端开发-php教程

权限管理办法是一个普遍采用的方法,主要是使用到”位运行符”操作,& 位与运算符、| 位或运行符。参与运算的如果是10进制数,则会被转换至2进制数参与运算,然后计算结果会再转换为10进制数输出。

饿了么源码,n2810 ubuntu,爬虫逆向是什么,Php红灯,SEO与IPOlzw

它的权限值是这样的:

驾校模拟考试源码,提升ubuntu 源速度,tomcat的运行日志,蜘蛛爬虫排行,php编写hello world程序,seo低迷lzw

2^0=1,相应2进数为”0001″(在这里^我表示成”次方”,即:2的0次方,下同)

水果销售网站源码,ubuntu里面的分区,绿色tomcat7安装版,爬虫入职要求,php包含中文字符串,做个网页seolzw

2^1=2,相应2进数为”0010″

2^2=4,相应2进数为”0100″

2^3=8,相应2进数为”1000″

要判断一个数在某些数范围内就可以使用 & 运算符(数值从上面的表中得来)

如:7=4|2|1(你也可以简单理解成7=4+2+1)

用 & 来操作,可以知道7&4、7&2、7&1都是真的,而如果7&8则是假的

&、|不熟悉的就要去查查手册,看看是怎么用的了

实例说明:

删除:8、上传:4、写入:2、只读:1define(“mDELETE”,8);define(“mUPLOAD”,4);define(“mWRITE”,2);define(“mREAD”,1);//vvvvvvvvvvvvv使用说明vvvvvvvvvvvvv//部门经理的权限为(假设它拥有此部门的所有权限),| 是位或运行符,不熟悉的就查查资料echo mDELETE|mUPLOAD|mWRITE|mREAD ,”“;// 相当于是把上面的权限值加起来:8+4+2+1=15// 设我只有 upload 和 read 权限,则echo mUPLOAD|mREAD ,”“;//相当于是把上传、只读的权限值分别相加:4+1=5/**赋予它多个权限就分别取得权限值相加,又比如某位员工拥有除了删除外的权限其余都拥有,那它的权限值是多少?*应该是:4+2+1=7*明白了怎么赋值给权限吧?*///^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^//判断某人的权限可用,设权限值在$key中/**判断权限用&位与符,*/$key = 13;//13=8+4+1if($key & mDELETE) echo “有删除权限“; //8if($key & mUPLOAD) echo “有上传权限“; //4$a=$key & mWRITE; echo “有写权限“.$a; //无此权限if($key & mREAD) echo “有读权限“; //1?>

OK,权限分值的这其中一个算法就是这样的,可以说是简单高效。也不知大家明白没有,不明白也没关系,记住例子就行了。前提就是做好权限值的分布,即那个1、2、4、8、16….(这里还有个顺序问题,越高级的权限就要越高的权限值,比如上面的例子所演示的删除权限)。有了权限分布表就可以确定给某个人什么权限了,你简单的理解成要哪个权限就加上相应的权限值吧。

这个方法很好用的,缺点就是如果权限分布得细的话,那么权限值会越来越大,你自己想想,2的几次方、如果所有的权限都要则是全部相加。不过对于一般的权限来说这个已经足够了。

位运算技巧

1.获取INT型最大值和最小值

最大值:

~(1 << 31)最小值:(1 << 31)2.乘以2运算和除以2运算

乘以2:

$n <> 1

3.乘以2的m次方和除以2的m次方

乘以2的m次方:

$n <> $m

4.判断一个整数的奇偶性

($n & 1) == 1

5.不用临时变量交换两个数

$a ^= $b;

$b ^= $a;

$a ^= $b;

6.从低位到高位,取n的第m位

return ($n >> ($m-1)) & 1;

7.从低位到高位.将n的第m位置1

return $n | (1 << ($m-1));8.从低位到高位,将n的第m位置0return $n & ~(1 << ($m-1));

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。