Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Mały Tutorial ;D
Forum PHP.pl > Forum > Przedszkole
poxrimex
Witam!

Otóz nie chciałbym, aby ktoś mnie odsyłał do innych kursów ja po prostu chcem, aby tutaj ktoś mi to solidnie wytłumaczył sadsmiley02.gif

Nie rozumiem kilku rzeczy. Z góry dziękuje za wytłumaczenie wstydnis.gif

1. Co oznaczają i do czego służą Operatory Bitowe np:
  1. <?php
  2. $a & $b
  3. $a | $b
  4. ~$a
  5. a$ << $b  ( co to wogule oznacza przesunięcie bitów? )
  6. ?>

2. Nie zaczaiłem do czego służą Referencje oraz funkcja Unset oraz isset.
Prosiłbym o wytłumaczenie na przykładzie
3. Funkcja gettype i settype również wytłumaczenie jak w pkt 2

Z Góry dziękuje.

Piszę to gdyż nie zrozumiałem tego w rzadnym z kursów sciana.gif
John
1. przekopiowane z php.net

  1. <?php
  2. $a & $b /*Mnożenie bitowe Dany bit wynikowy jest równy 1 tylko jeśli obydwa bity składowe są równe 1 ( działa jak == )*/
  3.  
  4. $a | $b /*Sumowanie bitowe Dany bit wynikowy jest równy 1 jeśli conajmniej jeden bit składowy jest równy 1 ( działa jak or )*/
  5. $a //Negacja bitowa Bity w zmiennej $a mające wartość 1 otrzymują wartość 0 i na odwrót ( działa jak negacja )
  6. ?>


Przesuwanie bitowe co oznacza ?
najprościej to będzie przykład
  1. <?php
  2. //niech 
  3. $a = 2 //2 bitowo jest równe 0010
  4. //niech 
  5. $b = 1 
  6.  
  7. //wtedy 
  8. $a << $b 
  9. //oznacza ze przesuwasz bit o jeden w lewo czyli
  10. //0010 przechodzi na 0100 czyli
  11. //2 zamienia sie w 4
  12. ?>

2. unset , usuwa zmienną czyli :
  1. <?php
  2. $a = 2;
  3.  unset($a);
  4. //i tu dochodzimy do isset, która sprawdza czy dana zmienna istnieje - jest określona
  5. isset($a) //da w tym wypadku false;
  6. //jeśli znów przypiszemy 
  7. $a = 2;
  8. to 
  9. isset($a) //da true;
  10. ?>


3. gettype i settype
zwraca i ustawia typ zmiennych
  1. <?php
  2. $a = 2;
  3. gettype($a) //zwróci wartość integer ( liczba całkowita ).
  4. settype($a,string) //zmieni typ zmiennej na łańcuch znaków ( tekst np. )
  5. ?>
poxrimex
Możę to teraz trochę nie na temat.

Mógłby mi ktoś wytłumaczyć te bity co to wogule jest? i jak to w praktyce wygląda?
qrees
Cytat(poxrimex @ 20.01.2008, 14:55:43 ) *
Możę to teraz trochę nie na temat.

Mógłby mi ktoś wytłumaczyć te bity co to wogule jest? i jak to w praktyce wygląda?



Przekopiowane z Wikipedia.org:

Bit (z ang. binary digit) – najmniejsza ilość informacji potrzebna do określenia, który z dwóch równie prawdopodobnych stanów przyjął układ. Jednostka logiczna.

Jest to również najmniejsza jednostka informacji używana w odniesieniu do sprzętu komputerowego a oznaczana jest za pomocą „b”. Przeważnie stosuje się podstawowe przedrostki wielokrotności SI, czyli o mnożniku 1000.

Bit przyjmuje jedną z dwóch wartości, które zwykle określa się jako 0 (zero) i 1 (jeden), choć można przyjąć dowolną inną parę wartości, np. prawda i fałsz, tak lub nie czy -1 i +1. W pierwszym przypadku bit jest tożsamy z cyfrą w systemie dwójkowym.

Binarny sposób zapisu informacji związany jest z tym, że komputer jako urządzenie elektroniczne rozpoznać może dwa stany prądowe:

  • 0 – brak napięcia lub bardzo niskie (mniej niż 10% wartości wysokiego)
  • 1 – wysokie napięcie.
mike
Cytat(poxrimex @ 20.01.2008, 14:55:43 ) *
Mógłby mi ktoś wytłumaczyć te bity co to wogule jest? i jak to w praktyce wygląda?
Bit to najmniejsza ilość informacji, którą posługują się komputery.
Wybacz ale równie dobrze możesz zapytać polonistę do czego służy literka a.

W praktyce wygląda to tak: każda informacja zapisana jest jako ciąg bitów.

Poczytaj o podstawach informatyki, bez tej wiedzy nie masz co zabierać się klawiaturę.
poxrimex
To może inaczej dlaczego liczba 2 jest w bitach jako 0010?
Proszę o praktyczne przykłady, będę wdzięczny
mike
Z tego samego powodu dlaczego liczba 16 w systemie dziesiętnym ma zapis 16.
Dwójkowy system liczbowy
poxrimex
hmm?
nadal prosiłbym np jaki zapis ma w tym systemie liczba 8 12 oraz inne i dlaczego?
To by mi się najbardziej przydało biggrin.gif
mike
8 = 1000 bo 1 * 2^3 + 0 * 2^2 + 0 * 2^1 + 0 * 2^0
12 = 1010 bo 1 * 2^3 + 1 * 2^2 + 0 * 2^1 + 0 * 2^0


^ to potęga, 2^3 = 2 do potęgi 3
John
Wytłumaczę Ci po tak prosto,że prościej się nie da, jeśli nie zrozumiesz to przerzuć się na polonistykę.
Kod
kod :                 0    0    0    0
miejsca w kodzie:    3    2    1    0
potęga liczby 2 :    2^3    2^2    2^1    2^0 gdzie ^oznacza potęgę.

Jak będzie wyglądać liczba 8 w systemie binarnym - bitowym czyli 01010101010101 itd.
8 = 2^3 ( do potęgi )
czyli jedynka reprezętująca dwójkę musi być na 3 miejscu bo taka jest potęga dwójki.
czyli 8 = 2^3 =     1    0    0    0 ( bo liczysz od 0 nie od 1)

analogicznie dla liczby 12
12 = 2^3 + 2^2 =    1    1    0    0 ( jedynka na 3 i 2 miejscu ).

wracając do przesunięcia bitowego, jeśli przesuniesz teraz bity o 1 w prawo to jak byś zmniejszył
potęgi dwójki o jeden czyli
12 >> 1 ( przesunięcie w lewo )

0    1    1    0    = 0+ 2^2 + 2^1 = 6


Mike pokazał skróconą wersje
p.s 12 = 1100 nie 1010
phpion
8 to:
1000
ponieważ:
2^3 = 8

12 to:
1100
poniważ:
2^3 + 2^2 = 8 + 4 = 12

Do której potęgi podnieść 2 dowiadujesz się patrząc na którym miejscu stoi 1 (licząc od prawej strony). Liczy się od 0. Czyli np.

1 to:
1
ponieważ:
2^0=1

2 to:
10
ponieważ 2^1 = 2

3 to:
11
ponieważ
2^1 + 2^0 = 2 + 1 = 3

Mam nadzieję, że jasno wytłumaczyłem.
Danone
To np liczba 20 będzie wygłądała w taki sposób:


10100 = 20, ponieważ jadąc od lewej masz tak:

1=16, 0=8, 1=4, 0=2, 0=1.


Rozumiesz już questionmark.gif questionmark.gif smile.gif


Zaczerpnięte z wikipedia.pl prościej się chyba nie da smile.gif


Obliczanie wartości dziesiętnej liczby zapisanej w systemie dwójkowym
43210 111102 = 11110 = 1x24 + 1x23 + 1x22 + 1x21 + 0x20 = 1 x 16 + 1 x 8 + 1 x 4 + 1 x 2 + 0 x 1 = 16 + 8 + 4 + 2 = 30 Jedynka podobnie jak w systemie dziesiętnym ma różne wartości w zależności od swojej pozycji - na końcu oznacza 1, na drugiej pozycji od końca 2, na trzeciej 4, na czwartej 8, itd. Ponieważ 0 x 2n=0, oraz 1 x 2n = 2n aby obliczyć wartość liczby zapisanej dwójkowo, wystarczy zsumować potęgi dwójki odpowiadające cyfrom 1 w zapisie.
phpion
Cytat(mike @ 20.01.2008, 17:22:08 ) *
12 = 1010

Chyba się machnąłeś smile.gif powinno być 1100.

---
Od razu zauważyłem ale nie zdążyłem wyedytować zanim ktoś nie zauważy smile.gif
~mike
poxrimex
Już rozumiem. blinksmiley.gif

Sry za moją "tempotę" ale człowiek od czegoś musi zacząć.

Dzięki wszystkim za pomoc ;p
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.