OR liefert dann das selbe Ergebnis wie +, wenn man nur Zweierpotenzen verknüpft. Aber auch nur, wenn alle Operanden dabei voneinander verschieden sind! Man sieht ab und an so ein + beim Zusammenbasteln von Flag-Feldern, bei denen einzelne Bits in einem Integer-Wert (zurück-)gesetzt werden, das ist aber semantisch Blödsinn, und kann ggf. auch seltsame ungewollte Ergebnisse liefern.
"AND 240" ist binär "AND 11110000". D.h. dass von einem Byte nur die obersten 4 Bits betrachtet werden sollen. Das ist durch keinen der üblichen mathematischen Operatoren ausdrückbar, so lange man nicht genau weiss wie die unteren 4 Bits gesetzt sind (dann könnte man ihre Werte subtrahieren, ist aber auch verkorkster Stil den kein normaler Mensch auf Anhieb verstehen wird).
\\Edit: Das "div 16" kannst du konsequenterweise hier auch durch den binäroperator SHR (shift right) ersetzen. N div 16 = N shr 4. Das div ist an dieser Stelle ähnlich schlechter Stil wie das o.g. Verwenden von mathematischen Operatoren für logische Operationen - es ist eigentlich genau das
\\Edit2: Das letzte "+" in diesen Zeilen ist dagegen richtig! Da scheint eine Konvertierung zwischen Character-Tabellen stattzufinden, und in diesem Zusammenhang ist das mathem. + korrekt. Also nicht auf die Idee kommen daraus nun nen "OR" zu machen
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)