Systems based on binary are simple and easy to build. As mentioned above, computers use combinations of logic gates where the presence, or not, of a voltage indicates state of any bit. Binary signals are unambiguous; a value is either set, or it is not. There is no concept of 'half-set'. This immunity to noise is a great advantage. However, whilst there is no ambiguity with regards to what any individual bit can be set at (it has to be quantized to one of two values), there is the potential (when there is more than one bit in parallel) that not all bits change state at exactly the same time. As an example, look at the binary sequence to the left, which shows the binary representations of the decimal numbers 0-7. In red, we see the number 3 represented as 011 2 . As it changes to 4 , every bit changes state, to 100 2 (The subscript 2 being used to signify the number base to avoid confusion with decimal). Every value changes from either 1 to 0, or 0 to 1. If all of these bits changed instantaneously, and synchronously, from one state to the other, there would never be any problem, but outside of theory, that never happens! In the real world, some bits would flip before others. Since every bit is changing in this example, depending on the order they change, and depending on when you read their state, it might be possible to read any value from this collection of bits!! This kind of problem is called skew. Microprocessors solve this problem by have a clock. A clock is like a metronome and beats with regular cadence. Bits are allowed to change state, taking their own time as they do, but are only read when the clock next beats. The clock frequency is chosen so that each bit has had sufficient time to change state, settle, and then be read in a repeatable and consistent way.