PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : bit operatoren ?



admireproblem
23-01-2002, 00:37
hi

ich finde haufenweise Anwendung für
vergleichs / logische Operatoren
doch wofür sind Bit Operatoren?

(Bit-Operatoren erlauben es, in einem Integer bestimmte Bits "ein- oder auszuschalten" (auf 0 oder 1 zu setzen). )

also wie verwenden ?

gruesse

Pingu
23-01-2002, 09:59
Hi,

logische Operationen sind normale Vergleichsoperationen, z.B.

1 > 2, oder ( 1 > 2 ) && ( 2 > 3) d.h. wenn 1 größer 2 _und_ 2 größer 3 erfüllt ist. Dies ist ein sogenanntes logisches Und.

Bitoperation werden heutzutage recht selten verwendet. Z.B. du hast am Parallel Port ein paar Lampen angeschlossen. Du möchtest nun die 2. Einschalten, aber die Zustände der anderen gleich lassen, ohne daß du sie weißt. Dummerweise kann man aber nicht auf jede einzelne Lampe zugreifen (jede wird ja nur durch ein Bit repräsentiert) sondern nur auf alle 8. Wie machst du es also? Du liest erst den aktuellen Zustand ein und setzt den Zustand der 2. Lampe auf ein und schreibst den Wert zurück.
Es gilt zum Beispiel für ein bitweises Oder:

x or y = z
0 0 0
0 1 1
1 0 1
1 1 1

$zustand = read(paralell port); < einlesen des aktuellen Gesamtzustandes
$zustand_neu = $zustand | 0x02; < ändern des Zustandes der zweiten Lampe, denn 0x02 -> 0000 0010
write(parallel port, $zustand_neu); < zurück schreiben und die zweite Lampe sollte jetzt leuchten, wenn sie vorher nicht geleuchtet hat.

Gruß

-= Pingu -=