Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Pytanie. W jakim celu stosuje się zapis & 0xFFFF?
Konfucjusz
post
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
  1. $db->f("product_packaging") & 0xFFFF;


po zmianach taki

  1. $db->f("product_packaging");

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






Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Konfucjusz
post
Post #2





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 12.11.2009

Ostrzeżenie: (0%)
-----


Dzięki @blooregard za słowa wyjaśnienia, o istnienu operatorów bitowych w PHP kompletnie zapomniałem (IMG:style_emoticons/default/smile.gif)

Tylko w jakim celu zastosowano tutaj iloczyn bitowy, zwłaszcza, że są pewnie niektórzy użytkownicy VM, którzy również chcieliby przedstawić swoje jednostki w formie liczby dziesiętnej np: 1,5 (m2)

niestety np:
  1. <?php
  2.  
  3. $a = 2.5;
  4.  
  5. echo $a & 0xFFFF;
  6.  
  7. ?>

daje nam 2 (IMG:style_emoticons/default/smile.gif)

naturalnie , jak juz wcześniej wspomniałem usunięcie 0xffff pomaga, ale chciałbym być w zgodzie z "oryginałem"
Czy można wogóle stosując iloczyn bitowy & (liczba dziesiętna z jakąś inna liczba heksadecymalną) mieć w wyniku liczbę decymalną/dziesietną ?

Ten post edytował Konfucjusz 13.11.2009, 00:45:14
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 12.10.2025 - 03:45