...
寫在最前面 最近想寫一個簡單的關於權限處理的東西,之前我也了解過用二進制數的位運算可以出色地完成這個任務。關於二進制數的位運算,常見的就是 或 與 非 這三種簡單運算了,當然,我也查看了下PHP手冊,還有 異或 左移 右移 這三個運算。記得上初中時數學老師就開始嘮叨個不停了,在此我也不想對此運算再作額外的說明,直接進入正題。 如何定義權限 將權限按照 的N次方來定義值,依次類推。為什么要這樣子定 ...
2013-06-26 17:17 7 4260 推薦指數:
...
1.引言 2.位運算基礎 3.位運算在角色權限設計中的應用 4.為什么in32的范圍是-2^31 ~ 2^31-1 ? 5.同余的概念 6.模的概念幫助理解補數和補碼。 一、引言 這周在做一個新增角色權限需求時,遇到下面這樣一行代碼,這篇文章將圍繞這行代碼展開 ...
(1 + 4 = 5),三種權限全部擁有就用 7 表示(1 + 2 + 4 = 7)。 實際上,這種運算是基於二進制的。 ...
異或的符號是^。按位異或運算, 對等長二進制模式按位或二進制數的每一位執行邏輯按位異或操作. 操作的結果是如果某位不同則該位為1, 否則該位為0. xor運算的逆運算是它本身,也就是說兩次異或同一個數最后結果不變,即(a xor b) xor b = a。xor運算可以用於簡單的加密 ...
...
使用場景: 1) 判斷奇數偶數 2)快速修改狀態 3)日常算法 注意點:有人問,為什么位運算不能直接這樣寫呢? function ip2int2($ip) { list($ip1,$ip2 ...
位運算符 位運算符是指對二進制位從低位到高位對齊后進行運算。 符號 作用 舉例 個人理解 & 按位與 $m & $n 全1為1,否則為0 | 按位或 ...
一、前言 在查看源碼中,經常會看到很多這樣的符號“&”、“|”、“~”,咋一看挺高大上;仔細一看,有點懵;再看看,其實就是大學學過的再普通不過的與、或、非。今天小盆友就以簡單的形式分享下,同時也是作為筆記記錄,等某天突然懵逼時可以回來看看,話不多說,開始擼 ...