用户权力详解_PHP教程
有耐心就看完(还是算法重要)
用户初始权值:Enable = 0;
假如一个用户有第一项权力Select,则用户权值:Enable = Enable + 1;
假如一个用户有第二项权力Insert,则用户权值:Enable = Enable + 2;
假如一个用户有第三项权力Update,则用户权值:Enable = Enable + 4;
假如一个用户有第四项权力Delete,则用户权值:Enable = Enable + 8;
为什么依次+1、+2、+4、+8,而不是+1、+2、+3、+4呢?
假如是+1、+2、+3、+4:
假如一个用户有第一项权力Select,则用户权值:Enable = Enable + 1;
假如一个用户有第二项权力Insert,则用户权值:Enable = Enable + 2;
假如一个用户有第三项权力Update,则用户权值:Enable = Enable + 3;
假如一个用户有第四项权力Delete,则用户权值:Enable = Enable + 4;
那么当用户权值:Enable = 3时,你就无法判断用户到底是同时拥有
第一项权力Select和第二项权力Insert两项权利,还是仅拥有第三项权力Update,
前一种权值算法就可以避免这种情况。
但是当采用前一种权值算法时,怎样由用户的权值Enable快速知道用户拥有哪几项权
力呢?假如是用户权值Enable = 5,用户拥有第一项权力Select和第三项权力Update,
注意不拥有第二项权力Insert。
下面我将用户权力列表:
权力 拥有权力用户的权值Enable
SelectItem:( 1, 3, 5, 7, 9, 11, 13, 15 )
InsertItem:( 2, 3, 6, 7, 10, 11, 14, 15 )
UpdateItem:( 4, 5, 6, 7, 12, 13, 14, 15 )
DeleteItem:( 8, 9, 10, 11, 12, 13, 14, 15 )
可见并不是权值Enable大的用户就拥有“更多”的权力,
假如 :用户权值Enable = 3,用户拥有第一项权力(Select)和第二项权力(Insert),共两项权利,
用户权值Enable = 4,用户拥有第三项权力(Update),仅一项权利。
仔细观察“用户权力列表”:
SelectItem:( 1, 3, 5, 7, 9, 11, 13, 15 ): 1 = 0 + 2 的0次幂;3 = 2 的1次幂 + 2 的0次幂;5 = 2 的2次幂 + 2 的0次幂;
InsertItem:( 2, 3, 6, 7, 10, 11, 14, 15 ): 2 = 0 + 2 的1次幂;3 = 2 的0次幂 + 2 的1次幂;6 = 2 的2次幂 + 2 的1次幂;
UpdateItem:( 4, 5, 6, 7, 12, 13, 14, 15 ): 4 = 0 + 2 的2次幂;5 = 2 的0次幂 + 2 的2次幂;6 = 2 的2次幂 + 2 的2次幂;
DeleteItem:( 8, 9, 10, 11, 12, 13, 14, 15 ):8 = 0 + 2 的3次幂;9 = 2 的0次幂 + 2 的3次幂 10 = 2 的1次幂 + 2 的3次幂;
规律总结如下:
拥有第一项权力Select用户的权值:Enable = ? + 2 的0次幂;(其中?亦必须拆成2 的N次幂相加的情况)
拥有第二项权力Insert用户的权值:Enable = ? + 2 的1次幂;(其中?亦必须拆成2 的N次幂相加的情况)
拥有第三项权力Update用户的权值:Enable = ? + 2 的2次幂;(其中?亦必须拆成2 的N次幂相加的情况)
拥有第四项权力Delete用户的权值:Enable = ? + 2 的3次幂;(其中?亦必须拆成2 的N次幂相加的情况)
到此已经很清楚了:
只要将用户的权值Enable拆成2 的N次幂相加的情况,
如果其中有N=0,则拥有第一项权力Select,
如果其中有N=1,则拥有第二项权力Insert,
如果其中有N=2,则拥有第三项权力Update,
如果其中有N=3,则拥有第四项权力Delete,
那么怎样将用户权值Enable快拆成2 的N次幂相加的情况呢?
呵呵!只要将Enable转化为二进制,从右向左依次取基,若基为的位则拥有相应权利,
举例:
(11)10=(1011)2,即拥有第一、二、四项权力,和“用户权力列表”相符;
(12)10=(1100)2,即拥有第三、四项权力,和“用户权力列表”相符;
(15)10=(1111)2,即拥有第一、二、三、四项权力,和“用户权力列表”相符;
当权利等级极其复杂时,该算法可以很快知道用户权力:
例如:
共8个等级,用户权值Enable=67;(67)10=(1000011)2,即拥有第一、六、七项权力,
用户权值Enable=67;(159)10=(10011111)2,即拥有第一、四、五、六、七、八项权力。
到此结束,希望没有浪费您的时间,对您有所启发。

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Dengan perkembangan pesat media sosial, Xiaohongshu telah menjadi salah satu platform sosial yang paling popular. Pengguna boleh membuat akaun Xiaohongshu untuk menunjukkan identiti peribadi mereka dan berkomunikasi serta berinteraksi dengan pengguna lain. Jika anda perlu mencari nombor Xiaohongshu pengguna, anda boleh mengikuti langkah mudah ini. 1. Bagaimana untuk menggunakan akaun Xiaohongshu untuk mencari pengguna? 1. Buka APP Xiaohongshu, klik butang "Temui" di penjuru kanan sebelah bawah, dan kemudian pilih pilihan "Nota". 2. Dalam senarai nota, cari nota yang disiarkan oleh pengguna yang ingin anda cari. Klik untuk memasuki halaman butiran nota. 3. Pada halaman butiran nota, klik butang "Ikuti" di bawah avatar pengguna untuk memasuki halaman utama peribadi pengguna. 4. Di penjuru kanan sebelah atas halaman utama peribadi pengguna, klik butang tiga titik dan pilih "Maklumat Peribadi"

Dalam sistem Ubuntu, pengguna root biasanya dilumpuhkan. Untuk mengaktifkan pengguna root, anda boleh menggunakan arahan passwd untuk menetapkan kata laluan dan kemudian menggunakan arahan su untuk log masuk sebagai root. Pengguna akar ialah pengguna dengan hak pentadbiran sistem tanpa had. Dia mempunyai kebenaran untuk mengakses dan mengubah suai fail, pengurusan pengguna, pemasangan dan pengalihan keluar perisian, dan perubahan konfigurasi sistem. Terdapat perbezaan yang jelas antara pengguna akar dan pengguna biasa Pengguna akar mempunyai kuasa tertinggi dan hak kawalan yang lebih luas dalam sistem. Pengguna akar boleh melaksanakan perintah sistem yang penting dan mengedit fail sistem, yang tidak boleh dilakukan oleh pengguna biasa. Dalam panduan ini, saya akan meneroka pengguna akar Ubuntu, cara log masuk sebagai akar, dan bagaimana ia berbeza daripada pengguna biasa. Notis

Ditulis di atas & pemahaman peribadi penulis: Pada masa ini, dalam keseluruhan sistem pemanduan autonomi, modul persepsi memainkan peranan penting Hanya selepas kenderaan pemanduan autonomi yang memandu di jalan raya memperoleh keputusan persepsi yang tepat melalui modul persepsi boleh Peraturan hiliran dan. modul kawalan dalam sistem pemanduan autonomi membuat pertimbangan dan keputusan tingkah laku yang tepat pada masanya dan betul. Pada masa ini, kereta dengan fungsi pemanduan autonomi biasanya dilengkapi dengan pelbagai penderia maklumat data termasuk penderia kamera pandangan sekeliling, penderia lidar dan penderia radar gelombang milimeter untuk mengumpul maklumat dalam modaliti yang berbeza untuk mencapai tugas persepsi yang tepat. Algoritma persepsi BEV berdasarkan penglihatan tulen digemari oleh industri kerana kos perkakasannya yang rendah dan penggunaan mudah, dan hasil keluarannya boleh digunakan dengan mudah untuk pelbagai tugas hiliran.

Sistem pengendalian Windows ialah salah satu sistem pengendalian yang paling popular di dunia, dan versi baharunya Win11 telah menarik perhatian ramai. Dalam sistem Win11, mendapatkan hak pentadbir adalah operasi penting Hak pentadbir membolehkan pengguna melakukan lebih banyak operasi dan tetapan pada sistem. Artikel ini akan memperkenalkan secara terperinci cara mendapatkan kebenaran pentadbir dalam sistem Win11 dan cara mengurus kebenaran dengan berkesan. Dalam sistem Win11, hak pentadbir dibahagikan kepada dua jenis: pentadbir tempatan dan pentadbir domain. Pentadbir tempatan mempunyai hak pentadbiran penuh ke atas komputer tempatan

Penjelasan terperinci tentang operasi bahagi dalam OracleSQL Dalam OracleSQL, operasi bahagi ialah operasi matematik yang biasa dan penting, digunakan untuk mengira hasil pembahagian dua nombor. Bahagian sering digunakan dalam pertanyaan pangkalan data, jadi memahami operasi bahagian dan penggunaannya dalam OracleSQL adalah salah satu kemahiran penting untuk pembangun pangkalan data. Artikel ini akan membincangkan pengetahuan berkaitan operasi bahagian dalam OracleSQL secara terperinci dan menyediakan contoh kod khusus untuk rujukan pembaca. 1. Operasi bahagian dalam OracleSQL

Cabaran biasa yang dihadapi oleh algoritma pembelajaran mesin dalam C++ termasuk pengurusan memori, multi-threading, pengoptimuman prestasi dan kebolehselenggaraan. Penyelesaian termasuk menggunakan penunjuk pintar, perpustakaan benang moden, arahan SIMD dan perpustakaan pihak ketiga, serta mengikuti garis panduan gaya pengekodan dan menggunakan alat automasi. Kes praktikal menunjukkan cara menggunakan perpustakaan Eigen untuk melaksanakan algoritma regresi linear, mengurus memori dengan berkesan dan menggunakan operasi matriks berprestasi tinggi.

Analisis mekanisme penyimpanan kata laluan pengguna dalam sistem Linux Dalam sistem Linux, penyimpanan kata laluan pengguna adalah salah satu mekanisme keselamatan yang sangat penting. Artikel ini akan menganalisis mekanisme penyimpanan kata laluan pengguna dalam sistem Linux, termasuk storan kata laluan yang disulitkan, proses pengesahan kata laluan dan cara mengurus kata laluan pengguna dengan selamat. Pada masa yang sama, contoh kod khusus akan digunakan untuk menunjukkan proses operasi sebenar penyimpanan kata laluan. 1. Penyimpanan kata laluan yang disulitkan Dalam sistem Linux, kata laluan pengguna tidak disimpan dalam sistem dalam teks biasa, tetapi disulitkan dan disimpan. L

Lapisan bawah fungsi C++ sort menggunakan isihan gabungan, kerumitannya ialah O(nlogn), dan menyediakan pilihan algoritma pengisihan yang berbeza, termasuk isihan pantas, isihan timbunan dan isihan stabil.
