Binary

Binary Mathematics: Uses And Abuses

by Jason Williams (jasonw@tdv.com)
written 10 May 1993

This article is classified "Partly real, partly fictional"


"Binary" literally means "consisting of two."

For example, a binary solar system is a solar system which contains two
stars.  An example of such a binary system is Sol.  Or at least, it would
be, if there were two stars in this particular system.

Curiously, when spelled backwards, "binary" yields "yranib," which is
Andearian for "pair."  Also, if we rearrange the letters in "binary," add a
few, take a couple away, and encode the result randomly, we get "deux,"
which is French for "two."  Amazing coincidence or is a higher intelligence
at work here?

The word "binary" is a term in its own right, most commonly used to mean
the binary counting system - mathematics carried out in base 2.  This was
invented by a small-time medieval poacher after he had been caught 9 times.

It is a very important counting system, as practically all modern computers
run on binary (unleaded binary still hasn't become very popular due to
pressure from the powerful lead cartels, as well as the need for companies
such as the gigantic Infernal Barrister Machinations Corporation to
continue pumping out 15 kilo "portables" so that they might continue to lose
more money each year than their biggest supercomputer can count (a cunning
tax dodge)).

Binary Mathematics:

If I take a bean and add another bean, how many beans do I have?  In
decimal, the answer is two (or three to some), while in binary, the answer
is ten (pronounced wonz-erro).  Application of this binary counting system
has relieved the famines in Ethimalia and Somopia by replacing every two
decimalized grains of rice with ten binary grains.

Where adding an extra digit onto the end of a decimal number will
effectively multiply that number by 10, in binary this has the effect of
multiplying by 2.

This effect can be seen when you try to "shift up" from one model of a
computer to the next - the price doubles each time, and after 3 shifts
there is no way you can afford the next one!  (As a point of interest,
a Yarc PMY 16 supercomputer takes 26 shifts for your average shoe salesman.)

In a similar vein, shifting in the opposite direction has the effect of
dividing by two.  This exponential decay becomes evident the day after you
buy your new computer, when you find that it is now worth only half as much
as you paid for it.  (My New Years Resolution: to find 25 other people
willing to buy and immediately sell a Yarc PMY 16.)

Another example of how this works can be seen in pyramid selling ventures,
where each person sells a product to two other people, and everybody doubles
their money.  (Incidentally, if you know of anyone who wants to buy a Unique
5100 toenail exerciser (the one that fits into a small barn!  Burn those
calories!  Keep that cuticle shapely and fit!), I know where I can lay my
hands on two of them.  Going real cheap!)

As an example of how the binary counting system works, binary addition is
described below:

    A binary number is made up of a string of binary digits (sometimes
    called "bits," often mistakenly given an origin in the phrase "BInary
    digiTS" but actually derived from the special two-position switch used
    to turn horses on and off.  Similarly, a "halter" is a device upon which
    one pulls hard to bring a computer/horse to an emergency stop, a "boot"
    is a device used to start a computer/horse, and a "branch" is often the
    cause of an unexpected halt at run time.)

    Addition and subtraction of single binary digits equates to an
    exclusive-or operation, as shown in the table below:

                     + | 0 1
                     --+----
                     0 | 0 1
                     1 | 1 0

    A complication when adding/subtracting numbers containing multiple
    digits is that a carry/borrow needs to be propagated to the left/right
    under some circumstances.

    This can mean a lot of work interrogating flags in order to calculate
    a correct result.  However, quite conveniently, a few computer assembly
    languages provide a set of obscure and little-known exclusive-or
    instructions which happen to propagate binary carries at the same time.
    These instructions go under a few different names, but can generally be
    found, if at all, by looking up "add" and "subtract" in the manual.

    Some high level languages also provide an infix macro which has a
    similar effect, usually defined as '+' or '-'.

There are three main reasons for using binary rather than decimal digits in
computers:

          1) If we were to store a number using decimal digits, we have to
             be able to store 10 values per digit, which takes up a lot of
             memory.  Using binary digits, however, we only need to store 2
             values per digit, which cuts down memory usage by 80%.

          2) Computers only have one finger (c.f., UNIX 'finger' command)
             while humans typically average ten (if we exclude statistics
             influenced by wars and combine harvester accidents).

          3) Computer programmers and hackers totally fail to comprehend
             decimal.

Reason (1) was also responsible for the change from the imperial system
(where everything was conducted in bases 12 and 60) to the modern metric
system (base 10).  Legislation is currently before the government to adopt
a new binary (base 2) system, in an effort to reduce the amount of computer
memory needed to store the American deficit, as well as to lower the
price of consumer items, reduce the distance between cities, and increase
the rate of production.

One very handy application of binary computer programming is that common
programming practices become much easier.  This especially applies to "Poke
and Hope" programming, where it reduces the range of random numbers the
programmer must try "poking" into his/her program to only 2 different values
instead of 10.  This has significantly improved the rate at which large
software houses such as MilkThem-Soft (TM) have been able to release
utter crap onto the market.

A recent advance in data compression technology has also been due to the
humble binary system.  In a stream of truly random decimal data, each digit
stands a 10% probability of being the next digit to appear.  However, by
using the binary data representation, we only use the digits 0 and 1, thus
increasing the likeliness of any digit being next from 10% to 50%.  This
significantly improves the efficiency of predictive encoding for data
compression, especially when combined with the Compression Sort Transform.

See also:
  • Poke And Hope Programming
  • Compression Sort Transform

  • Go to [Root page | Title list | Author list | Date list | Index]