~9 min read · Hardware · Binary · Fundamentals

Why Binary Won?

I thought I understood binary. Turns out, I only knew how to convert numbers.

A question I couldn't answer

I've been reading Disarming Code by Jonathan Levin. The book starts with binary, hexadecimal, words and dwords. I realized something uncomfortable: I knew how to convert decimal to binary, but I couldn't answer a much simpler question.

Why did binary win?

Not "how do I convert 150 to binary?" Not "what is a dword?" But why, out of every number system humans have invented, the one with only two symbols became the foundation of every computer on Earth.

I could do the math. I couldn't explain the physics.


Imagine you had to build the first computer.

You're at the beginning. No conventions yet. No standards. You get to choose how the machine represents information.

You could pick almost anything:

Decimal Base 3 Base 12 Hexadecimal Binary

Decimal feels natural. We have ten fingers. Base 12 divides nicely. Hexadecimal is compact. Binary looks absurdly limited. Only two digits. Zero and one. Why would anyone choose the smallest one?

Why would anyone choose the smallest one?

The physics problem

To answer that, we need to leave the textbook. In a perfect world, you send a voltage and receive exactly what you sent. Real circuits never work that way. Signals travel through wire, silicon, and air. Along the way, the value drifts.

Three forces are always working against you:

Noise

Random fluctuations in the signal. Electrons don't move in straight lines. Every reading wobbles slightly around the true value.

Heat

Resistance increases with temperature. Components expand, thresholds shift, and the same circuit behaves differently after running for an hour.

Interference

Nearby wires and components leak electromagnetic energy into each other. A signal meant to be 3V picks up ghost voltages from its neighbors.

None of this matters much if you only need to tell "high" from "low." It matters enormously if you need to tell 5V from 4V from 3V.

Watch what happens in practice:

Send
5V
→
Receive
4.81V

Still a five?

Send
3V
→
Receive
3.12V

Still a three?

Now connect this to the number system choice. A decimal machine needs to distinguish ten voltage levels, one for each digit 0 through 9. That means dividing the available voltage range into ten narrow bands. Each band gets a thin slice of the spectrum, with almost no margin for error.

A small drift from noise, a shift from heat, a spike from interference, and a 5 becomes a 4. Or a 6. The receiver can't tell. The more levels your system requires, the tighter each level must be, and the more fragile the whole design becomes.

Ideal vs. real
Ideal Real 5V → 4.83V
💡
The real constraint The problem isn't mathematics. It's engineering. You are trying to read a signal through wire, heat, distance, and interference, and you need to get the right answer every time. The number system you choose must survive that reality.

The engineering trick

Instead of asking a circuit to distinguish ten levels, ask it to distinguish two.

Pick a threshold in the middle. Everything below it means one thing. Everything above means another.

Below 2.5V ↓ 0
threshold · 2.5V
Above 2.5V ↓ 1

4.81V? Clearly above the line. That's a 1. 0.3V? Clearly below. That's a 0. You don't need the voltage to be exact. You need it to be on the right side of the line.

This is where logical levels are born. Not numbers in the abstract, but physical states with enough margin to survive the real world.


Meet the transistor

Binary logic didn't wait for silicon. Decades before the transistor, engineers were already building computers out of mechanical relays and vacuum tubes. A relay is either open or closed. A tube is either conducting or not. Two states, naturally.

The transistor arrived in 1947 and made those switches smaller, faster, cheaper, and far more reliable. But it didn't invent the idea. It scaled it.

At the level that matters here, a transistor does one thing:

It works like a switch.

Switch → bit
Relay open → 0 Relay closed → 1 Tube off → 0 Tube on → 1 Transistor off → 0 Transistor on → 1

Think of a light switch on the wall. Off. On. No in-between that the circuit has to interpret. No "sort of on." Each generation of hardware gave engineers a physical object that could hold one of two stable states, and hold it reliably, millions of times per second, for years.


From switches to information

One switch gives you two states. Add another, and the combinations multiply.

Combinations grow fast
1 switch → 2 states 2 switches → 4 states 3 switches → 8 states ↓ ↓ 8 switches → 256 states

We are not storing numbers yet. We are creating combinations. Each pattern of on and off is a distinct piece of information: a letter, a color, an instruction, a memory address. The number of possible patterns grows exponentially with every switch you add.

Binary isn't the number system we chose because it's elegant. It's the natural unit of a machine made of switches.


A computer doesn't understand numbers

This is the part that changed how I think about all of it.

When you write 150 in your code, the computer never sees "one hundred and fifty." It sees a pattern of switches:

ON · OFF · ON · ON · OFF · OFF · ON · OFF

We give that pattern meaning. We agree that this particular arrangement of switches represents the number 150, or the character 'n', or one pixel of red. The hardware doesn't care. It only knows on and off.

We give meaning. The machine gives states.

Binary didn't win because of math

Binary didn't win because it's mathematically elegant. It won because it's physically reliable.

Leibniz admired binary for its symmetry in 1703. That admiration came centuries before anyone built a transistor, or even a relay computer. Binary existed on paper long before it existed in silicon. The math is beautiful. But beauty didn't put a chip in your pocket.

What did: a system simple enough that real wires, real heat, and real noise couldn't easily corrupt it. Two states. Wide margins. Repeatable, billions of times per second, for decades.


Others tried

Binary wasn't the only option on the table. Engineers experimented with other bases. The results are instructive.

1945 · University of Pennsylvania
ENIAC

ENIAC stored and processed numbers in decimal. Its arithmetic used ten-position ring counters, one state for each digit 0 through 9. It ran on 17,468 vacuum tubes.

It worked. It also broke constantly. A single tube failure could corrupt a calculation, and with ten states to keep stable, debugging was slow and painful. Every machine that followed moved toward binary logic. Not because decimal was wrong in theory, but because it was too fragile in practice.

1958 · Moscow State University
Setun

The Soviet Union built a ternary computer. Base 3. Three states per switch: negative, zero, positive. On paper, ternary is more efficient. You represent larger numbers with fewer digits.

Only about fifty Setun machines were ever built. Three stable states are significantly harder to manufacture and maintain than two. The math was elegant. The hardware wasn't cooperative. The project was abandoned.

Both cases tell the same story from different angles. ENIAC showed that more states means more fragility. Setun showed that even when the math favors a different base, physics pushes back. Binary won not because it was the only option, but because it was the most buildable one.


Mental model

If this article rewires one thing, let it be this:

Before

Binary is a numbering system.

After

Binary is the consequence of building reliable circuits in an imperfect world.

Conversion exercises still matter. But they describe the notation. They don't explain the origin.


Three sentences to keep

A computer doesn't speak binary. It behaves electrically. Binary is our interpretation of that behavior.

Binary wasn't invented because it is simple. It survived because it is reliable.

Every bit is just a physical switch pretending to be mathematics.


Further reading


What's next

We now know why there are only two states. The next question is practical: once you accept that the machine only knows on and off, how should a human actually read it?

How should a human think in binary? Not convert. Recognize.
Discussion

Questions? Disagree with something?