Uterschied Logische und Bitweise-Verknüpfung
-
Hallo
hab heute das hier in einem anderen Code gesehen
if(bytes[3] == '.' & bytes[4] == 'h' & bytes[5] == 'e' & bytes[6] == 'l' & bytes[7] == 'p'){}
und war erstmal erstaunt das es funktioniert aber nachdem ich drüber nachdachte wurde mir klar das es ja eigentlich egal sein müsste ob man nun && oder & verwendet oder irre ich mich da ?
Mal abgesehn davon das es andere Programmiere verwirrt gibt es gute gründe es nicht zu verwenden (ich werd natürlich weiterhin && verwenden für logisch vergleiche)?
Mfg Dakoon
-
&& evaluiert nur solange es sinn macht. sprich:
false && foo()
ruft nie foo() auf.false & foo()
dagegen schon.weiters geht && auf die logik des ausdrucks waehrend & auf die bit geht.
wenn du nun einen boolean hast, ists klar dass && und & gleich auswerten (da ja nur das 1. bit relevant ist).
bei 1 & 2 vs 1 && 2 dagegen sieht die sache anders aus.