bitweise Kombination: Unterschied zwischen den Versionen
Flash (Diskussion | Beiträge) (Die Seite wurde neu angelegt: Bitweise Kombination wird benutzt um mehrere Eigenschaften in einem Bitstring zu codieren. Meistens werden Zahlen bitweise kombiniert, dieses Verfahren ist aber prinzip...) |
(kein Unterschied)
|
Version vom 2. Januar 2009, 12:47 Uhr
Bitweise Kombination wird benutzt um mehrere Eigenschaften in einem Bitstring zu codieren. Meistens werden Zahlen bitweise kombiniert, dieses Verfahren ist aber prinzipiell mit allen Datentypen möglich, da alle als Bitstring im Speicher abgelegt werden.
Verfahren
Bei der bitweisen Kombination werden die Bitstrings der Eingaben bitweise OR verknüpft. Als Ergebnis erhält man wiederum einen Bitstring.
Praktisch bedeutet dies, dass jede Bitposition eine gewisse Bedeutung repräsentiert. Wenn Bit 1 z.B. anzeigt ob es Tag oder Nacht ist, und Bit 2. ob es kalt oder Warm ist, kann durch die Kombination beider z.B. eine kalte Nacht abgebildet werden.
Anwendung
Vielfach wird dieses Verfahren bei prozeduralen APIs verwendet um komplexe Rückgabewerte zu kodieren. Beispielsweise bei der SDL.
Beispiel
Wir haben 3 Zahlen die wir verknüpfen wollen:
Zahlenwert | Bitstring | |
---|---|---|
1. Zahl | 1 | 0000 0001 |
2. Zahl | 4 | 0000 0100 |
3. Zahl | 9 | 0000 1001 |
Die verknüpfung von Zahl 1 und Zahl 2 ergibt:
0000 0001 0000 0100 --------- 0000 0101 -> Entspricht dem Dezimalwert 5
Die verknüpfung von Zahl 1, Zahl 2 and Zahl 3 ergibt:
0000 0001 0000 0100 0000 1001 --------- 0000 1101 -> Entspricht dem Dezimalwert 13
Verknüpft man eine Zahl mit sich selbst, ändert sie sich nicht:
0000 0001 0000 0001 --------- 0000 0001
Verknüpft man eine Zahl mit 0 ist das Ergebnis gleich der anderen Zahl.
0000 0101 0000 0000 --------- 0000 0101
Verknüpft man eine Zahl mit MAX ist das Ergebnis gleich MAX.
0000 0101 1111 1111 (MAX = größtmöglicher Wert) --------- 1111 1111