"(1<<PB1) | (1<<PB2)" <-- bei dem hier. Ist das sone Art UND-Befehl?
Also wird dann daraus 0b00000110 das hier?
Im Prinzip ist das schon richtig was Du sagst, also 2 mal die 1 schieben ergibt
00000110 aber es ist kein UND Befehl sondern ein ODER

hier eine Erklärrung :

byte 1 : 00000011
byte 2 : 00000010

ODER Verknüpfung:
Wenn ein Bit von Byte 1 ODER ein Bit von Byte 2 1 ist, soll das Ergebnis auch 1 sein!

mithin wenn Du die beiden Bytes mit ODER verknüpfst bekommst Du 00000011

UND Verknüpfung:
Wenn ein Bit von Byte 1 UND ein Bit von Byte 2 1 ist, soll das Ergebnis auch 1 sein!

mithin wenn Du die beiden Bytes mit UND verknüpfst bekommst Du 00000010

Das ist auch sehr wichtig und nützlich!
Gibt auch extra Befehle OR AND ORI ANDI

Gruß Sebastian