Kelevra86:
gerade ist mir in einer Bibliothek folgender Operator aufgefallen: ^=
Was macht dieser?
Die Operator-Gleich Schreibweise bedeutet einfach, dass der Operator mit dem rechts vom Gleichheitszeichen stehenden Ausdruck auf die links vom Gleichheitszeichen stehende Variable angewendet wird.
Beispiele:
checksum +=2;
ist gleichbedeutend mit
checksum =checksum+2;
checksum -=2;
ist gleichbedeutend mit
checksum =checksum-2;
checksum /=2;
ist gleichbedeutend mit
checksum =checksum/2;
checksum =2;
ist gleichbedeutend mit
checksum =checksum2;
und demzufolge ist
checksum ^= hex2dec(id.substring(i2,i2+2);
gleichbedeutend mit
checksum = checksum ^ hex2dec(id.substring(i2,i2+2);
Wobei in letzterem Fall natürlich beide Schreibweisen gleich fehlerhaft sind und zu einem Compilerfehler führen, weil die Anzahl der öffnenden und schließenden Klammern im Ausdruck nicht gleich ist (2* Klammer auf, aber nur 1* Klammer zu).
^ steht für "hoch", also 2^3 gesprochen "2 hoch 3"