![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 27.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie.
Mam interesujący problem. Stwierdziłem po prostu że sie tego nie da, więc jeśli się komuś uda zxnaleźć rozwiązanie to będę wdzięczny i chylę czoła. Otóż problem wygląda tak: Z pliku wczytuje dane do tablicy za pomocą FILE. Tamte dane są to funkcje boolowskie, które wyglądają np. tak: ~a&~b . Przerabiam to później w ereg_replace (gdyż pod różne zmienne podstawiam ciągle różne wartości - 1 lub 0). Noi gdzie jest problem... otóż tu, że to jest traktowany jako string i w żaden sposób nie moge zmusić php do policzenia wartości logicznej funkcji boolowskiej w stringu. Oczywiście jak wpisze z palca do skryptu owe funkcje to działają, ale po przerobieniu ze stringa nie da rady. Jeżeli ktoś pomoże, będę wdzięczny... Pozdrawiam Ten post edytował leClerCk 28.11.2006, 08:17:05 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 235 Pomógł: 2 Dołączył: 30.06.2006 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Do takich rzeczy uzywa sie:
http://pl.php.net/manual/pl/function.eval.php proszę poprawić tytuł o znacznik zgodnie z zasadami forum Przedszkole: Temat: Tematyka i zasady panujace na forum Przedszkole -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 27.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Ziels mówisz o rzutowaniu typów, a to troche inaczej działa (testowałem
![]() Nospor dzięki za eval, to było to czego mi było trzeba ![]() Natomiast pojawił się jeszcze jeden problem, może ktoś mnie oświeci. Jeśli daję zaprzeczenie binarnie: ~0 to w wyniku otrzymuję "-1", jeśli ~1 to w wyniku dostaję "-2". Nie przypomina mi to tych standardowych 0 i 1 które chciałbym otrzymać;) Czy binarnie robi sie jakieś inne zaprzeczenie czy co ja mam z tym zrobić, żeby po zaprzeczeniu jakiejś tam funkcji otrzymać 0 albo 1, a nie -1 lub -2...? Thx for help, jeśli ktoś odpowie pozdrawiam |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
do negacji to sie uzywa "!"
Te rzutowanie na int to poto bys mial 0 i 1 a nie true lub false -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 27.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
dzięki, jesteś mocarz
![]() |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 675 Pomógł: 15 Dołączył: 7.11.2004 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
@nospor rozwiązał Twój problem, ale gwoli wytłumaczenia, dlaczego się działo tak:
Jeśli daję zaprzeczenie binarnie: Operacja logicznego NOT, zapisywana jako $b = ~2, zmienia stan wszystkich bitów, ustawiając te bity w zmiennej $b, których odpowiedniki w wartości 2 są wyzerowane, wszystkie inne bity tej zmiennej są zerowane. Więc:~0 to w wyniku otrzymuję "-1", jeśli ~1 to w wyniku dostaję "-2". i int: 2, binarnie: 0000 0000 0000 0000 0000 0000 0000 0010, ~i: int: -3, binarnie: 1111 1111 1111 1111 1111 1111 1111 1101. No i kolejna sprawa, chyba również ciekawa. Za B. Eckelem, Thinking in JAVA: Cytat Typ logiczny jest traktowany jako jednobitowy... Można wykonać bitowe AND, OR i XOR, ale nie można wykonać bitowego NOT (przypuszczalnie dlatego, by uniemozliwić pomylenie z logicznym NOT) - o tym warto pamiętać.
-------------------- Kto pyta, nie błądzi...
Kto zbłądził, ten pyta... |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 0 Dołączył: 27.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
okej, program gra i śpiewa, gitarka
![]() dzięki za pomoc oraz ciekawe wytłumaczenie z Eckela;) pozdrawiam |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 07:01 |