![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 195 Pomógł: 0 Dołączył: 13.04.2004 Skąd: Łódź Ostrzeżenie: (0%) ![]() ![]() |
Witam. Na mojej stronie chcę stworzyć system tworzenia rang w panelu administracyjnym. Jest z tym problem, bo z każdą rangą muszą wiązać się konkretne uprawnienia do konkretnych operacji.
I nie byłoby w tym nic trudnego (takie uprawnienia to było by jedno pole typi bigint tabelu 'rangi'), gdyby nie fakt że możliwych uprawnień jest ponad 100. Czyli nasza liczba musi zawierać ponad 100 bitów, co ma około 17 cyfer w systemie dziesiętnym (nie wiem ile dokładnie, bo mi kalkulator nie chce liczyć 2^100 (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ). A maksymalny rozmiast inta w php to marne 32 bity [okołow 2 miliardy w systemie dziesiętnym]. Rozwiązanie wpadło mi do głowy natychmiast - moją sumę bitów zapisywałbym jako string w postaci dziesiętnej - proste, łatwe i klarowne... no i gdzieś w manualu widziałem funkcje do obsługi dużych liczb. Szybko znalazłem to o co mi chodziło: ref.bc" title="Zobacz w manualu php" target="_manual. No i hała (IMG:http://forum.php.pl/style_emoticons/default/dry.gif) Nie mogę dokonać nawet prostego zsumowania bitów za pomocą tych funkcji, a jak próbuję normalnie to mi wychodzi około dwóch miliardów, nawet przy zachowanej konwersji do stringa Spróbowałem zatem dać
Kicha... Czy ktoś wie może jak dokonać operacji bitowej na tak dużych liczbach? Cóż, jeżeli to niemożliwe, będę musiał poszatkować to na paczki, każda po 32 bity... ale nie podoba mi się, bo znowu wymaga to kilku kolejnych pól w tabeli sql... Będę wdzięczny za wszelkie pomysły i sugestie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował L_Devil 31.08.2005, 19:41:17 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.09.2025 - 15:48 |