![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 28.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam
przegladalem forum ale takiego problemu nie znalazlem (w druga str bardziej:)) Problem jest taki: posiadam system 64 bitowy a przez to mam rozszerzony zakres inta. I teraz jak robie przesuniecie bitowe liczby, dajmy na to: CODE $zmienna = 1732584193<<5; var_dump($zmienna); wyswietla mi: CODE int(55442694176) a powinien(dla inta 32-bitowego): CODE -391880672 probowalem juz ustawiac CODE ini_set(PHP_INT_SIZE,4); ale to nic nie dalo, i funkcja (znalazlem w necie, typek twierdzi ze bangla) CODE function thirtyTwoBitIntval($value) { if ($value < -2147483648) { return -(-($value) & 0xffffffff); } elseif ($value > 2147483647) { return ($value & 0xffffffff); } return $value; } tez nie dziala poprawnie, tj ucina po prostu bity, nie interpretuje np jako liczba ujemna, a powinno... nie mam juz sily na to, macie moze jakis pomysl? |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 17:02 |