• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

32/64bit php

  • Ersteller Ersteller FoXMorayn
  • Erstellt am Erstellt am
F

FoXMorayn

Guest
Hallo,

ich befasse mich etwas näher mit den bit-operatoren von php.
nun finde ich dort selbstgeschriebene funktionen um auf 64bit maschinen noch einen 32bit shift durchzuführen.
das verwirrt mich, gibt es 64bit php versionen? laut dieser quelle gibs irgendwo welche, aber die werden nicht eingesetzt? ( Install 64bit versions of Apache, PHP and MySQL on Windows 64bit - Developers guides )
kenn jemand einen php hoster der mit 64bit arbeitet?
gibs noch andere funktionen die beim 64bit system andere ergebnisse liefern, außer dem shifting?

bisher ist es für mich einfach nur "just for fun", um mal zu schauen, wie es im detail funktioniert. kennt jemand einsatzgebiete für bitoperatoren?

gruß,
foxmorayn
 
Ja, ich kenne Hoster, die eine 64-bit PHP-Version installiert haben. Wenn du das checken willst, vermutlich so:

PHP:
var_dump(PHP_INT_SIZE * 8);

gibs noch andere funktionen die beim 64bit system andere ergebnisse liefern, außer dem shifting?

Na ja, theoretisch jede Funktion, die den höheren Wertebereich von zum Beispiel Integern nutzt. Davon dürfte eine normale Anwendung aber in der Regel nichts mitbekommen, weil Werte über 2 Mrd. selten sind.

kennt jemand einsatzgebiete für bitoperatoren?

Zum Beispiel:

- Bitmaske (error_reporting(E_ALL | E_STRICT);)
- UTF-8 dekodieren
- Auslesen von ID3-Tags aus MP3-Dateien: id3v2.4.0-structure - ID3.org
- Hashing-Algorithmen
- Pack-Algorithmen
- Grafik- und Audio-Bearbeitung
- …

Im Grunde kommen diese Operatoren immer dann zum Einsatz, wenn mit Binärformaten (direkt mit den „Bytes“) gearbeitet wird.
 
Zuletzt bearbeitet:
und für bestimmte Multiplikationen und Divisionen. Dazu muss man Wissen, das Bitoperationen i.d.R. auf dem Rechner sehr sehr schnell sind, da sie direkt in Maschinensprache umgesetzt werden können.

Also z.b. geteilt durch 2

$a = 8;
print $a / 2;
print $a >> 1; // das sollte deutlich schneller sein
 
mhh. hab jetzt keinen bereich finden können der sich wirklich in php lohnen würde. ich sehe den einsatz von bitoperatoren ehr bei modulen, die nicht in php geschrieben sind.
wohl ehr eine notlösung, falls man keine wahl hat.


wer interesse an den operatoren hat, hier ein kleines beispiel zum ausprobieren.
demonstriert schön den unterschied zum && vergleichsoperator.
PHP:
echo "12 & 9 = ";
echo 12 & 9;

/*
    12 | 9 | Y = A & B
    ------------------
    1  | 1 | 1
    1  | 0 | 0
    0  | 0 | 0
    0  | 1 | 0
    -> 0001
    
    0 * 1 = 0
    0 * 2 = 0
    0 * 4 = 0
    1 * 8 = 8
            --
        ->    8
        
        
    12 & 9 = 8
*/


echo "<br>--------------<br>\n";



//Ein Vergleich mit 0 ergibt immer 0
echo "0 & 1 = ";
echo 0 & 1;
 
Zurück
Oben