Hilfe bei Verknüpfung benötigt



  • Hallo alle zusammen,

    brauch hier grad dringend was, aber ich steig da jetzt gerade echt nicht durch..

    Was genau macht die folgende Verknüpfung?

    cdb[1] |= 1 : cdb[1] |= 1 << 4
    

    Vielen Dank schonmal!!



  • Würde mal sagen da fehlt etwas.
    Sieht' vielleict so aus ?

    cb[1] == 0 ? cdb[1] |= 1 : cdb[1] |= 1 << 4;
    

    das könnte man auch so schreiben

    if ( cb[1] == 0 ) {
       cdb[1] |= 1;      // bit 0 setzen 
    }
    else {
       cdb[1] |= 1 << 4; // bit 4 setzen 
    }
    

    Kurt



  • Sorry, hatte was vergessen. So siehts komplett aus:

    (bBenq || bCyberDrv) ? cdb[1] |= 1 : cdb[1] |= 1 << 4;
    

    Du hast geschrieben, dass im ersten Teil Bit 0 gesetzt wird. Auf welchen Wert? Und auf was wird Bit 4 gesetzt?



  • einLiterVollmilch schrieb:

    Sorry, hatte was vergessen. So siehts komplett aus:

    (bBenq || bCyberDrv) ? cdb[1] |= 1 : cdb[1] |= 1 << 4;
    

    Du hast geschrieben, dass im ersten Teil Bit 0 gesetzt wird. Auf welchen Wert? Und auf was wird Bit 4 gesetzt?

    Bei Bits sagt man üblicherweise es wird gesetzt, wenn man "auf 1 setzen" meint, und es wird gelöscht, wenn man "auf 0 setzen" meint.



  • man könnte es aus so schreiben

    if (bBenq || bCyberDrv) 
       cdb[1] = cdb[1] | 1;
    else 
       cdb[1] = cdb[1] | ( 1 << 4 );
    


  • Hutzli schrieb:

    einLiterVollmilch schrieb:

    Sorry, hatte was vergessen. So siehts komplett aus:

    (bBenq || bCyberDrv) ? cdb[1] |= 1 : cdb[1] |= 1 << 4;
    

    Du hast geschrieben, dass im ersten Teil Bit 0 gesetzt wird. Auf welchen Wert? Und auf was wird Bit 4 gesetzt?

    Bei Bits sagt man üblicherweise es wird gesetzt, wenn man "auf 1 setzen" meint, und es wird gelöscht, wenn man "auf 0 setzen" meint.

    Ok, vielen Dank, jetzt ist mir auf jeden Fall schonmal eine Menge mehr klar. Habe bisher mit bitweisen Operatoren und Verknüpfungen noch gar nicht gearbeitet und wurde jetzt (bin Azubi, 1. LJ) ziemlich ins kalte Wasser geworfen mit ner dringenden Programmieraufgabe.

    Jetzt noch eine Frage, wie kann ich nun im Teil cdb[1] |= 1 das Bit 1 löschen?

    Ist das hier richtig?

    cdb[1] &= ~(1 << 4)
    


  • Damit lösch du bit 4;
    fü bit 1 wäre das

    cdb[1] &= ~(1 << 1)
    

    Kurt



  • ZuK schrieb:

    Damit lösch du bit 4;
    fü bit 1 wäre das

    cdb[1] &= ~(1 << 1)
    

    Kurt

    Super, vielen, vielen dank, vor allem auch für die schnelle Hilfe!!


Anmelden zum Antworten