Thomas Müller wrote:
>
1 | > char _var; // die variable in der du ein einzelnes bit abfragen willst
|
2 | >
|
3 | > if ((_var & 0b00001000) >= 1) /* die 1 gibt das bit an welches du
|
4 | > abfragen willst.*/
|
5 | > {
|
6 | > x=y; // was auch immer dann halt passieren soll
|
7 | > }
|
8 | >
|
9 | >
|
> dabei handelt es sich um eine UND funktion bei der du schaust ob das
> ergebnis >= 1 ist oder nicht.
> du musst nachschauen ob die zahl gleich grösser 1 ist denn wenn du bit
> nummer 2 setzt sind das ja dann 4 und nicht 1
Und jetzt überleg mal, welche Werte das ganze überhaupt annehmen kann...
Und irgendwann kommst Du vermutlich zu dem Schluss, dass völlig
unabhängig davon, welches Bit es sein soll, eine Abfrage auf "> 0"
oder "!= 0" völlig ausreicht. Und in dem Fall kann man den Vergleich
auch komplett weglassen und einfach schreiben
Und den Underscore ("_") vor dem "var" solltest Du tunlichst weglassen.
Sämtliche Bezeichner, die mit einem oder mehreren Unterstrichen
beginnen, sind für Compiler und lib reserviert und dürfen vom
Programmierer nicht vergeben werden.
Außerdem ist die Binärschreibweise mit "0bXXXXXXXX" nicht vom
ANSI-Standard abgedeckt und dementsprechend wird sie nicht von allen
Compilern unterstützt! Genau deshalb nimmt man schließlich die
Bitschiebe-Schreibweise, die ist nämlich zu 100% portierbar, weil
ANSI...