I used PINB and PINC to monitor eight pins, (because I needed to use interrupts I couldn't use PIND).
Bits 5-0 in PINB make up the first six bits, and Bits 4 and 3 in PINC make up the last two bits of the byte returned from a sensor. Since PINB and PINC are separate bytes, how do I make a new byte (with the bits in the appropriate places) from them?
one of these two, depending what "appropriate places" actually means:
((PINC & 0x18) << 3) | (PINB & 0x3F)
(PINB << 2) | ((PINC & 0x18) >> 3)