Zuerst müssen wir erkennen, dass die Operatoren rechts vom Gleichheitszeichen allesamt bitweise Operatoren sind (das erkennt man daran, dass es immer nur ein | oder & ist). D.h. wir betrachten nun die binären Darstellungen der Zahlen.
Darüberhinaus müssen wir beachten, dass manche Operationen vor anderen Operationen ausgeführt werden müssen. Das ist so wie in der Mathematik (Punkt vor Strich). Laut dem Internet hat das & Vorrang vor dem | (

).
Wie kommt man nun auf die 7?
2 entspricht = 0010 (binär)
1 entspricht = 0001 (binär)
6 entspricht = 0110 (binär)
12 entspricht = 1100 (binär)
2 | 1 (| ist das binäre OR, d.h. wenn ein oder beide bits 1 sind, dann ist das Ergebnisbit eine 1, sonst 0)
0010 | 0001 = 0011
6 & 12 (& ist das binäre AND, d.h. wenn beide bits 1 sind, dann ist das Ergebnisbit eine 1, sonst 0)
0110 & 1100 = 0100
Und nun:
0011 | 0100 = 0111
Wobei 0111 einer dezimalen 7 entspricht.
Gruß,
qqdev