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

 

You May Also Like