& und && wo sind die Underschiede

Gast #2160926
Lesenswert?

void LED_Anzeige(void)
{
if(Spannung & 0b00000001)
LED_0_an;
else
LED_0_aus;
if(Spannung & 0b00000010)
LED_1_an;
else
LED_1_aus;
if(Spannung & 0b00000100)
LED_2_an;
else
LED_2_aus;
...
}

funktioniert dieses Konstrukt mit dem & , wenn "Spannung" bis zu 8 Bit 
groß ist, oder müsste die Verknüpfung durch ein "&&" realisiert werden?

Wann benutzt man "&"
und wann benutzt man "&&" ?

mfg
Gast #2160932
Lesenswert?

& ist eine Logische, bitweise undverknüpfung
&& ist eine kombination bei Bedingungen... also

0b00000001 & 0b00001111 -> Ergibt 0b00000001

if(var1 == true && var2 == false) -> prüft ob var1 true UND var2 false 
ist.


oft gemachter fehler mit & und = ist:

if(var1 = true) -> springt immer in die If-Klausel, da er erfolgreich 
var1 true zugewiesen hat...
Gast #2160976
Lesenswert?

Ich glaube das geht nur mit 8 bit. Ich würde aber auch sonst 0x01, 0x02, 
0x04 nehmen. Bzw dann 0x0001, 0x0002, 0x0004...

Ist das so gemeint, dass die 8 bit in "Spannung" angeben, welche LED an 
gehen soll und welche nicht? Dann würde ich ehrlich gesagt die 8 LEDs an 
einen Port vom µC machen und dann "PORTx = Spannung;"......

Luk4s K. schrieb:
> ich schrieb:
>> da er erfolgreich
>> var1 true zugewiesen hat...
>
> Es gibt in C kein 'Zuweisung erfolgreich'. AFAIK gibt

Ich meine das mal gelesen zu haben. Jedenfalls springt er bei "if(var = 
0)" und auch bei "if(var = 1)" erfolgreich in den IF... selbst 
(unfreiwillig) getestet^^

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren