A flip-flop is an important digital circuit component. It is essentially a static (self-refreshing) one-bit memory. There are several different varieties of flip-flops--D flip-flops, JK flip-flops, SR flip-flops, and T flip-flops.

By definition, a flip-flop is a bistable circuit element. Bistability means that the flip-flop has two stable states, which correspond to binary 1 and binary 0.

The simplest bistable circuit consists of two inverters connected in a loop like this:

```           B
|
__|\ __|____|\ ____
|  |/°       |/°    |
|                   |
|___________________|
|
|
A

```

The circuit above has only two stable conditions. Either node A is binary 1 (i.e. the power supply voltage V) and node B is binary 0 (i.e. ground, or 0 volts) or node A is 0 and node B is 1. The reason for this bistability is the high voltage gain of the inverters when nodes A and B are between 0 and V. Small changes on one inverter's input lead to much bigger changes on its output. Furthermore, the output of one inverter is the input to another, so the bigger change gets amplified again. This cycle continues until the inverters reach one of the two steady-state conditions.

The two-inverter circuit above would not be of any use in a digital circuit since there is no way to set or reset its values--it simply remains in a stable condition. Flip-flops for digital circuits have extra transistors to allow setting/resetting and/or clocked operation. See one of the specific flip-flop entries for more details.

Because of the nature of inverters, the flip-flop constantly regenerates its condition. As long as the inverters are powered and there are no catastrophic sources of noise, a flip-flop will hold its state until triggered to set or reset. This is why it is called a static memory element.

A clocked flip-flop is one type of latch, an essential element of digital circuits. The flip-flop is the fundamental element of SRAM.