php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger

PHP Einsteiger PHP Problemlösungen für Spracheinsteiger
Archive: 2004, 2004/2, 2005, 2005/2, 2006, 2007, 2008, 2009, 2010,

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.04.2011, 08:03  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

Zitat:
Zitat von lstegelitz Beitrag anzeigen
Und gleich noch ein Profitipp:

PHP-Code:
pow(2$i); 
Das ist ein sogenanntes Bit-Shifting, d.h. das Bit an Position $i wird gesetzt.
PHP kennt dazu auch 2 Operatoren: << und >> (links shiften, bzw. rechts shiften). Das "Verschieben" von Bits kommt einer Multiplikation/Division mit einer bestimmten 2er Potenz gleich:

1<<0 = 2^0 // 1
1<<1 = 2^1 // 2 bzw. 1*(2^1)
1<<2 = 2^2 // 4 bzw. 1*(2^2)
1<<3 = 2^3 // 8 bzw. 1*(2^3)
usw.

Umgekehrt klappt das natürlich auch (der Exponent wird negativ):
1 >> 0 = 2^(-0) // 1
1 >> 1 = 2^(-1) // 0.5 bzw. 1/(2^1)
1 >> 2 = 2^(-2) // 0.25 bzw. 1/(2^2)
1 >> 3 = 2^(-3) // 0.125 bzw. 1/(2^3)
usw.
letzteres aber nur bei Fließkomma ... bei Integers is 1>>1 schon 0 (die 1 steht ja schon ganz rechts und wird damit quasi "aus dem Byte" geschoben)

ansonsten habt ihr Recht , mit Byte-Operatoren zu arbeiten ist eine weitgehend verloren gegangene Methode ... Man hat ja heut sooo viel Speicherplatz (Man erinnere sich an Speichermodelle "Tiny" bei C )
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 01.04.2011, 15:57  
Erfahrener Benutzer
 
Benutzerbild von mermshaus
 
Registriert seit: 14.06.2009
Beiträge: 1.729
PHP-Kenntnisse:
Fortgeschritten
mermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz seinmermshaus kann auf vieles stolz sein
Standard

Zitat:
ansonsten habt ihr Recht , mit Byte-Operatoren zu arbeiten ist eine weitgehend verloren gegangene Methode ...
Ich würde den Aussagen zaghaft widersprechen. Es gibt eine Menge sinnvoller Anwendungen für sowas (UTF-8-Bereich, allgemein Auslesen von binären Formaten, Grafikbearbeitung, „Flags“, …). Wo Bit-Operationen nicht mehr eingesetzt werden, waren sie vielleicht einfach nicht sinnvoll, sondern nur notwendige Krücken.
__________________
Blog | Buch | Kaloa

Geändert von mermshaus (01.04.2011 um 17:11 Uhr). Grund: einige Beispiele ergänzt
mermshaus ist gerade online   Mit Zitat antworten
Alt 01.04.2011, 16:51  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

kann auch sein ... ich verwende sie noch für meine Rechte-Struktur , um die vielen Gruppen auseinander zu halten - wird aber in Version 2.0 dann auch wieder überarbeitet werden, weil dann granulare Rechte benötigt werden
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste
eagle275 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Wozu sind die Bitweisen Operatoren gut? einballimwasser PHP Tipps 2009 9 04.06.2009 13:02

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
bitweisen

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:32 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum