发表时间:2014-09-05来源:网络
假设有十进制数字10
获取10的二进制每一位的值:
(10 >> 0) & 0x01 //最低位的值
(10>> 1)& 0x01 //倒数第二位的值
假设有二进制数101
转10进制
$res = 0;
$res |= (1
$res |= (1
//中间位不是1
power as $k => $v){ if(in_array($v,$user)){ $res |= (1 power as $k => $v){ $res[$v] = ($num >> $k) & 0x01; } return $res; }}//假设现在有个用户拥有P1,P4权限$user = array('P1','P4');$test = new Test();//查看用户权限的int值var_dump($test->getPowerInt($user));//输出9//注意顺序为倒序如果有个用户是0101即只有P1,P3两个权限,即十进制5,//输出权限列表var_dump($test->getPowerByInt(5));//输出array(4) {// ["P1"]=>// int(1)// ["P2"]=>// int(0)// ["P3"]=>// int(1)// ["P4"]=>// int(0)// }//----------------如果权限不够用了,需要新增权限--------//倒序。新增在高位//修改$power// $power = array(// "P1",// "P2",// "P3",// "P4",// "P5",// );// 测试新结果 :老权限不受影响。老用户默认没有新权限// 所以可以在设计之初认为最低位为最高权限,all。// var_dump($test->getPowerInt($user));//输出9// var_dump($test->getPowerByInt(5));//输出array(4) {// ["P1"]=>// int(1)// ["P2"]=>// int(0)// ["P3"]=>// int(1)// ["P4"]=>// int(0)// ["P5"]=>// int(0)// }
CI框架连接数据库配置操作以及多数据库操作
asp 简单读取数据表并列出来 ASP如何快速从数据库读取大量数据
C语言关键字及其解释介绍 C语言32个关键字详解
C语言中sizeof是什么意思 c语言里sizeof怎样用法详解
PHP中的魔术方法 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep,
PHP中的(++i)前缀自增 和 (i++)后缀自增
将视频设置为Android手机开机动画的教程
最简单的asp登陆界面代码 asp登陆界面源代码详细介绍
常用dos命令及语法
PHP中include和require区别之我见
2014-09-05
2022-03-20
2022-03-21
2022-03-24
2014-09-05
2014-09-05
2015-07-05
2014-09-05
2022-03-21
2014-09-05