The Z80 follows a 2-3-3 opcode bit pattern. Register instructions normally use three bits to specify the register used: 000=B, 001=C, 010=D, 011=E, 100=H, 101=L, 110=indirect through HL, 111=A. In this pattern, the two high-order bits specify the register pair, while the low order bit specifies which half of the pair to use. For example 00x is BC, 000 is B, and 001 is C.
Three bits are used to specify condition codes: 000=NZ(Non Zero), 001=Z(Zero), 010=NC(Non Carry), 011=C(Carry), 100=PO(Parity Odd), 101=PE(Parity Even), 110=P(Plus), 111=M(Minus). The JR instruction only decodes the 2 lower bits of the condition code.
Condition C (carry) is unrecognizable from register C. To recognize which it is, conditions (flags) are used only in instructions: CALL, JR, JP, RET.