znacie zapewne taką metode np nadawania jakiejs funkcji chociazby admin na serwerze dajmy na to counter-strike (kiedys to instalowalem w był szereg chyba15 uprawnień
wygladających następująco
2 uprawnienie 1
4 uprawnienie 2
8 uprawnienie 3
16 uprawnienie 4
32 uprawnienie 5
64 uprawnienie 6
128 uprawnienie 7
256 uprawnienie 8
512 uprawnienie 9
1024 uprawnienie 10
2048 uprawnienie 11
4096 uprawnienie 12
8192 uprawnienie 13
16384 uprawnienie 14
32768 uprawnienie 15
jak zapewne bystrzy matematycy zauważą są to kolejne potęgi 2.
chcemy dać takiemu adminowi wybrane z tych uprawnień niech to będą uprawnienia numer 1,6,3 i 4, sumujemy te liczby noi powiedzmy ze tutaj dodałem (mam nadzieje ze sie nie pomyliłem wyszło 90)
wklepujemy liczbe do configa servera i w tym momencie nasz server interpretujac liczbe 90 na swoj sposob wie ze chodzi nam o uprawnienia numer 1,3,4,6
moje pytanie brzmi.... jaki jest kod źródłowy takiego rozkodowującego algorytmu ???? bo przeciez tych kombinacji kurczę troszke będzie (nie chce mi sie liczyc bo kombinatorykę dawno miałem i musiałbym do tablic patrzec na te wzorki) ale troszke będzie i machinom troche czasu by to zajęło więc pytam jaki jest na to algorytm inteligentny bo jakis musi byc...
Rozpisanie flag bitowych
Rozpisanie flag bitowych
Liczby te sa kolejnymi potegami dwojki poniewaz w zapisie binarnym, kazdy bit odpowiada za inna wlasciwosc. Na poszczegolnych bitach wykonuje sie binarna alternatywe, a nie dodawanie. Jesli chcesz sprawdzic, ktore wlasciwosci sa ustawione, a ktore nie to trzeba po prostu sprawdzic po kolei wszystkie bity.
Przykladowy kod (gdzie f to flagi do, jak to okresliles, ,,rozkodowania'):
Pozdrawiam, GNicz
PS. To nie jest zadne szyfrowanie!
Przykladowy kod (gdzie f to flagi do, jak to okresliles, ,,rozkodowania'):
Kod: Zaznacz cały
int i;
for(i = 0; i < (sizeof(f) << 3); i++, f = f >> 1)
{
if(f & 0x01)
printf("Flaga %s
", nazwy_flag[i]);
}
PS. To nie jest zadne szyfrowanie!