A 4-bit shift register can be constructed using 4 D flip-flops. Data enters the first flip-flop serially on each clock pulse and shifts from left to right through the register. A 4-bit serial-in parallel-out register stores data serially but outputs it in parallel simultaneously. A 4-bit parallel-in parallel-out register inputs and outputs data in parallel simultaneously. A 4-bit ring counter is a circulating shift register that feeds the output of the last stage back to the input of the first stage. A 4-bit Johnson counter is a variation of a ring counter that inverts and feeds back the output of the last stage.