Frage zu modulo(%)

Joined
Oct 30, 2004
Messages
1,722
Points
0
Hi,

ich bräuchte mal ne Antwort auf folgende Frage:

Durch welche äquivalente (logische) Operation ist der Ausdruck ‚foo %= 16’ prinzipiell ersetzbar (foo sei dabei eine Vorzeichenlose Integer-Variable)?

In meinen Büchern und bei Google hab ich dazu nichts gefunden.

Das muss irgendwas mit Shiftoperationen zu tun haben und dann bestimmte Bits in der Variable auf Null setzen.

Allerdings hab ich keine Idee wie das funzen könnte:(

MfG Stalker
 
ich verstehe die frage nicht ganz.

eine alternative wäre

while(foo >= 16)
foo - 16

so enthält foo am ende den gleichen wert wie bei foo %= 16
 
Vermutlich soll er den modulo Wert auf logische Operationen zurückführen, da ein Prozessor ja im Grunde nur aus logischen Gattern besteht. Hat er nun grade ne Vorlesung zu Rechnertechnik oder Assembler muss er den Modulo Befehl eben mit "Bordmitteln" des Prozessors zusammenbauen.

Beim Dividieren und Multiplizieren mit 2er Potenzen reichen beispielsweise auch shifts aus um das Ergebnis zu berechnen. Hier wirds ähnlich sein, nur hab ich jetzt leider keine Zeit um mich da genauer reinzudenken.
 
Ich hatte ganz vergessen, dass dieser Thread noch existiert o.O

BseBear hat recht, weil 16 eine Potenz von 2 (2^4) ist, kann man einfach mit

PHP:
 foo &= ~(15<<4)

die ersten 4 Bits auf null setzen. So hat man in der Variablen nur noch den Rest stehen.
 
Back
Top Bottom