Programmieren - alles kontrollieren 4.941 Themen, 20.715 Beiträge

C++: Bitweise Operatoren

Yves3 / 2 Antworten / Baumansicht Nickles

Hallo

Ich habe einen Teil Code, den ich begreifen möchte.
In diesem Code wird viel mit Binäroperatoren gearbeitet. ( |= , &= , ~)
Hab gegoogelt und eigentlich bei jedem Operator herausgefunden, was er macht.(1001 & 1100 = 1000)
Leider kann ich mir noch nicht richtig vorstellen, wie man diese Operatoren einsetzen kann und ich kapiere nicht wirklich was sie im Code bewirken.
Kann mir das jemand gut erklähren oder kennt jemand eine gute Seite, wo das erklährt wird?

z.B:
// Transparenz weg
PixelsUebergang[n * nPitchUebergang + p] &= ~0xff000000;

Vielen Dank für alle Antworten!

bei Antwort benachrichtigen
clausg Yves3 „C++: Bitweise Operatoren“
Optionen

Üblicherweise blendet man mit diesen Operatoren einzelne Bits ein und aus. Das ist dann notwendig, wenn man für einen Ja/Nein-Zustand (Flag) nicht ein einzelnes Byte oder gar ein int opfern möchte, sondern mehrere dieser Zustände in ein Byte oder int packt. Mit |= kann man einen einzelnes Flag setzen und mit &= ~ZUSTAND kann man ein einzelnes Flag löschen. Das gilt nicht nur für einzelne Flags sondern auch für mehrere.

HTH
Claus

bei Antwort benachrichtigen
Yves3 clausg „C++: Bitweise Operatoren“
Optionen

Jetzt hat s "klick" gemacht :-)
In diesem Code wird es zwar etwas anders verwendet, ich habs jetz aber kapiert.

Danke für deine Antwort!

bei Antwort benachrichtigen