![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 12.11.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam serdecznie.
Mam do Was pytanie dotyczące pewnego zapisu. Chciałem zmienić w komponencie Virtuemart (Joomla) sposób wyświetlania się pewnych jednostek (konkretnie ilość towaru w paczce). Oryginalnie jednostki te były wyświetlane jako liczby całkowite, a ja chciałem je wyświetlić jako liczby dziesiętne. Naturalnie, po kilku zmianach w bazie danych i drobnych przeróbkach w kodzie udało mi się tego dokonać, jednakże w kodzie natrafiłem na pewien zapis, którego niestety nie rozumiem i liczę ,że ktoś z Was mi go wyjaśni. Niestety, na początku, mimo, zmian w bazie itd (typ kolumny product_packaging zmieniłem z INT na DEZIMAL(10,2) ) dalej pokazywało mi liczbę całkowitą. Dopiero usunięcie w kodzie zapisu & 0xFFFF Oryginalny zapis był taki
po zmianach taki
pomogło, W jakim celu stosuje się tutaj ten zapis (& 0xFFFF) i czy usunięcie jego będzie miało/ma jakis wpływ na działanie skryptu. Ogólnie po zmianach wszystko działa , tylko właśnie nurtuję mnie to że bez powodu tego tam nie wstawili (IMG:style_emoticons/default/smile.gif) Dzieki za jakiekolwiek wyjaśnienie Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Newsman Grupa: Moderatorzy Postów: 2 033 Pomógł: 290 Dołączył: 21.12.2007 Skąd: Łódź ![]() |
& - to logiczne AND. Operator ten słuzy do wykonania logicznego działania AND na dwóch podanych argumentach (nie myl z &&).
AND ustawia wynikowy bit na jeden tylko wtedy gdy oba bity w podanych argumentach również mają wartość 1. Przykład: 11 & 10 = 10. Czemu? Binarnie liczba 11 to 01011, liczba 10 to 01010. Dokonując na tych dwóch liczbach operacji AND: binarnie: 01011 | dziesiętnie: 11 AND binarnie: 01010 | dziesiętnie: 10 = binarnie: 01010 | dziesiętnie: 10 (ustawiamy odpowiedni bit na 1 jedynie tam, gdzie oba bity w podanych liczbach miały 1) Prosty skrypt do testowania:
A u Ciebie:
dokonywana jest logiczna operacja AND na wartośc zwracanej przez metodę $db->f() dla argumentu "product_packaging" (pewnie jakaś wartość liczbowa odczytywana z tablicy asocjacyjnej dla zadanego klucza albo z bazy danych dla pola/kolumny o takiej nazwie) oraz liczby 65536 (bo dziesiętnie 0xFFFF to właśnie 65536 zapisane hexadecymalnie). |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 27 Dołączył: 24.03.2002 Skąd: Tarnów Ostrzeżenie: (0%) ![]() ![]() |
(bo dziesiętnie 0xFFFF to właśnie 65536 zapisane hexadecymalnie). O jeden mniej (IMG:style_emoticons/default/winksmiley.jpg) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 13.10.2025 - 19:22 |