A flip-flop is an important element in sequential electric circuits, in which the output current changes value only when the "clock" input current changes. There are three types of flip-flops: jk flip-flops, d flip-flops, and sr flip-flops.
Flip-flops can be useful for storing information because their output value changes only when both the clock input changes and the load input is on. Therefore, the output depends not on the current input values but on what they were sometime in the past. This is useful for eliminating momentary variance in a signal.
The simplest flip-flop to build is the SR flip-flop, which consists of two cross-coupled NOR gates. The input to each gate is one input (either S or R) and the output of the other gate. When both S and R are zero, the value of Q (the output from the gate linked to R) remains constant. A value of S=1 sets Q=1; a value of R=0 resets Q to 0. If the NOR gates take input from AND gates instead of S and R directly, a clock can be added to this flip-flop.
A simple SR flip-flop S--NOR---+--Q' (not Q) \_____(__ _____/ | / | R--NOR------+--Q
SR Flip-flop with clock added S--AND--NOR---+--Q' (not Q) / \_____(__ clock _____/ | \ / | R--AND--NOR------+--Q