Weil Du über ein Byte nur 8 Bits "drüberlegen" kannst - und keine 16.
Mit AND &B00001111 setzt Du die ersten 4 Bits des Ports auf 0 (da sie nicht an dem eigentlichen Wert beteiligt sind).