-
Imagine trying to use words
to describe every scene in a film,
-
every note in your favorite song,
-
or every street in your town.
-
Now imagine trying to do it using
only the numbers 1 and 0.
-
Every time you use the Internet
to watch a movie,
-
listen to music,
-
or check directions,
-
that’s exactly what your device is doing,
-
using the language of binary code.
-
Computers use binary because
it's a reliable way of storing data.
-
For example, a computer's main
memory is made of transistors
-
that switch between either high
or low voltage levels,
-
such as 5 Volts and 0 Volts.
-
Voltages sometimes oscillate,
but since there are only two options,
-
a value of 1 Volt
would still be read as "low."
-
That reading is done by
the computer’s processor,
-
which uses the transistors’ states
to control other computer devices
-
according to software instructions.
-
The genius of this system
is that a given binary sequence
-
doesn't have a pre-determined meaning
on its own.
-
Instead, each type of data
is encoded in binary
-
according to a separate
set of rules.
-
Let’s take numbers.
-
In normal decimal notation,
-
each digit is multiplied by 10 raised
to the value of its position,
-
starting from zero on the right.
-
So 84 in decimal form is 4x10⁰ + 8x10¹.
-
Binary number notation works similarly,
-
but with each position
based on 2 raised to some power.
-
So 84 would be written as follows:
-
Meanwhile, letters are interpreted
based on standard rules like UTF-8,
-
which assigns each character to a specific
group of 8-digit binary strings.
-
In this case, 01010100 corresponds
to the letter T.
-
So how can you know whether
a given instance of this sequence
-
is supposed to mean T or 84?
-
Well, you can’t from seeing
the string alone
-
– just as you can’t tell what the sounds
‘da’ means from hearing it in isolation.
-
You need context to tell whether you're
hearing Russian, Spanish, or English.
-
And you need similar context
-
to tell whether you’re looking
at binary numbers or binary text.
-
Binary code is also used for
far more complex types of data.
-
Each frame of this video, for instance,
-
is made of hundreds
of thousands of pixels.
-
In color images,
-
every pixel is represented
by three binary sequences
-
that correspond to the primary colors.
-
Each sequence encodes a number
-
that determines
the intensity of that particular color.
-
Then, a video driver program transmits
this information
-
to the millions of liquid crystals
in your screen
-
to make all the different hues
you see now.
-
The sound in this video
is also stored in binary,
-
with the help of a technique
called pulse code modulation.
-
Continuous sound waves are digitized
-
by taking ‘snapshots’ of their
amplitudes every few milliseconds.
-
These are recorded as numbers
in the form of binary strings,
-
with as many as 44 thousand
for every second of sound.
-
When they’re read by
your computer’s audio software,
-
the numbers determine how quickly
the coils in your speakers should vibrate
-
to create sounds of different frequencies.
-
All of this requires billions
and billions of bits.
-
But that amount can be reduced
through clever compression formats.
-
For example, if a picture has 30 adjacent
pixels of green space,
-
they can be recorded as ‘30 green’ instead
of coding each pixel separately -
-
a process known as run-length encoding.
-
These compressed formats are themselves
written in binary code.
-
So is binary the end-all-be-all
of computing?
-
Not necessarily.
-
There’s been research
into ternary computers,
-
with circuits in three possible states,
-
and even quantum computers
-
whose circuits can be
in multiple states simultaneously.
-
But so far none of these has provided
-
as much physical stability
for data storage and transmission.
-
So for now, everything you see,
-
hear,
-
and read through your screen
-
comes to you as the result
of a simple ‘true’ or ‘false’ choice,
-
made billions of times over.