php 进制及位运算

//八进制 ,前面加0代表8进制
echo 0123 , '<br/>'; //十进制83 从右到左3个位,分别是以1顶1,以1顶8 ,以1顶64
echo 027 , '<br/>';//23

//十六进制,前面加0x代表16进制 , 0 1 2 3 4 5 6 7 8 9 a b c d e f 
echo 0x123 , '<br/>';//十六进制 从右到左3个位,分别是以1顶1,以1顶16 ,以1顶256
echo 0x27 ."<br>";
echo 0x1c ."<br>"; //28

//二进制 ,php目前不支持直接表示 ,从右到左,分别以1顶1,顶2,顶4,顶8.....
/*
10进制       2进制
5	     0000 0101
255    	     1111 1111       	
*/

//位运行符,&位与运算符 , | 位或运算符
echo 5&12 ,'<br/>'; //6
echo 5|12 ,'<br/>'; //13

echo 5^12 ,'<br/>';//异或 9

echo ~5 ,'<br/>';//取反

//利用位运算的左移一位,使整数增大2倍;相应得位运算的右移一位,使整数减小2倍
$a=3;
echo $a << 1 ,'<br/>';//6
echo $a << 2 ,'<br/>';//12


// 赋予权限值-->(删除:8)( 上传:4) (写入:2) (只读:1)
define(“mDELETE”,8);
define(“mUPLOAD”,4);
define(“mWRITE”,2);
define(“mREAD”,1);

//部门经理的权限为(假设它拥有此部门的所有权限)
echo mDELETE|mUPLOAD|mWRITE|mREAD // 相当于是把上面的权限值加起来:8+4+2+1=15

// 设我只有 upload 和 read 权限,则
echo mUPLOAD|mREAD


本文出自 “梦想指引方向” 博客,转载请与作者联系!

你可能感兴趣的:(PHP,进制及位运算)