Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 24-01-2008, 13:54
Schanz
 Newbie
Links : Onlinestatus : Schanz ist offline
Registriert seit: Jun 2004
Beiträge: 62
Schanz ist zur Zeit noch ein unbeschriebenes Blatt
Standard Suche LOGISCHEN bitwise operator!

Guten Tag an alle,

folgendes Problem... Ich habe folgenden Befehl/Ausdruck:

PHP-Code:
<?php
3084996963 
>> 29;
?>
So, leider versteht PHP unter dem >>-Operator ein "arithmetic shift", was ich suche ist allerdings ein "locigal shift".

Hier das was PHP macht:
PHP erkennt das erste bit als ein Vorzeichen an und verschiebt alle bits DANACH um 29 Stellen.
Code:
10110111111000010101000101100011 (Ausgangszahl - Binär)
1              0110111111000010101000101100011
^ Vorzeichen   ^ Zahl
Jetzt vollzieht PHP die Verschiebung..
Das Ergebnis ist '11' mit dem Vorzeichen '1' also -3!

Was ich will:
Code:
10110111111000010101000101100011

Nach Verschiebung:
00000000000000000000000000001011
Der Ergebnis ist also '1011' mit dem Vorzeichen '0' also 5!

Danke im voraus!

// Edit: Ich merke grade, dass es daran zu liegen scheint das PHP nicht mehr als 32 bits verträgt... Gibt es da eine möglichkeit das zu umgehen?

Geändert von Schanz (24-01-2008 um 14:31 Uhr)
Mit Zitat antworten