Copyright 1995 By: John Selvia

This site is part of lyzrdstomp.com.

Binary is the language of computers. Everything you type, input, output, send, retrieve, draw, paint, or place blame on when something doesn't work is, in the end, converted to the computer's native language- binary. But just how does this whole "on/off", "1/0", "hi/lo" thing work?

Binary is called a Base 2 numbering system (the "bi" in the word binary was a dead giveaway). Base 2 allows us to represent numbers from our Base 10 system (called the decimal system - "dec" meaning 10) using only 2 digits - 1 and 0 - in various combinations.

Example of a typical binary number: 10001010
8-bit binary number representing the decimal number 138.

To the computer, binary digits aren't really 1s and 0s. They're actually electrical impulses in either a (mostly) on state or a (mostly) off state. Just like a switch - either on or off. Since you only have 2 possible switch combinations or electrical possibilities, the computer only needs various combinations of 2 digits to represent numbers, letters, pixels, etc. These 2 digits, for our sake are visually represented by 1s and 0s.

Bits, Bytes and Words

Binary numbers can be from 1 digit to infinity. But for our uses, there aren't too many numbers that we can't live without that can't be represented by 32-bit or 64-bit binary numbers. Let's start with the basics.

A single binary 1 or a single binary 0 is called a `bit`, which is short for "binary digit". A single bit by itself isn't of much use to the casual user, but can do wonders in the hands of a programmer working at the system level.

Take 4 of these bits and slap them together and they now form what's called a nibble (though this term isn't used very often). A nibble can represent the decimal values 0 to 15 (16 distinct values).

 1 0 1 0

4-bit (Nibble) Sample

Take 8 bits and put them together and you have one of the mostly commonly used computer terms in existence - the byte. A single byte can represent the decimal values 0 to 255 (256 distinct values) and since every possible character you can type on an English keyboard is represented by a number less than 128 to the computer (called ASCII codes) , a single letter of the alphabet takes 1 byte to represent internally (technically, you can represent all the letters of the alphabet using only 7-bits of a byte, but we won't get into that). When we speak of how much ram a computer has, we say it has 256-megabytes of ram, meaning 256 million bytes (most people nowadays just say 256 megs of ram and leave off the byte word).

 1 0 1 1 1 0 1 0

8-bit (1 Byte) Sample

Place a couple of bytes together to represent a single value and you have a 16-bit word (2 bytes = 16-bits). A 16-bit word can represent the values 0 to 65535 (65536 distinct values). In the old days 16-bit words were used to form the addresses of 8-bit computers such as the Commodore 64, the Atari 800, and the Apple IIs, to name a few. These 16-bit words which were big enough to store an address for a 64k computer consisted of 2 bytes, a high byte and a low byte.

 1 BYTE 1 BYTE 1 0 0 0 1 0 1 0 1 0 0 0 1 0 1 0

16-bit (2 Byte) Sample

32-bit words are 4 bytes in length. They can represent a value from 0 to 4,294,967,295 (4,294,967,296 distinct values).

 1 BYTE 1 BYTE 1 BYTE 1 BYTE 1 0 0 1 1 1 0 1 1 0 0 0 0 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 0 1 1 1
32-bit (4 Byte) Sample

Pretty big number, but bigger still is the 64-bit word, which is, for you math-deprived people, 8 bytes in length (8 bytes times 8 bits per byte).

 1 BYTE 1 BYTE 1 BYTE 1 BYTE 1 BYTE 1 BYTE 1 BYTE 1 BYTE 1 0 1 1 0 0 0 1 1 1 1 0 1 1 0 0 0 0 1 0 1 1 0 1 1 1 0 1 1 0 1 1 0 0 0 0 1 1 1 0 1 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 1 1 0 0 0 1 1
 64-bit (8 Byte) Sample This whopping monstrosity can represent a number from 0 to 1.844 E+19 if I understand my calculator correctly.

Okay, enough about bits, bytes and words. Let's figure out how to read a lowly 8-bit binary number.

How to Read a Binary Number

As stated previously, a byte consists of 8 bits, each bit having the possible value of either a 1 or a 0. Now when deciphering binary numbers, don't think of the 1 or 0 as an actual value itself, but a flag to determine whether it has any importance in the calculation of the final result. Lost? Let's look at an example:

Example binary number: 10001010
Binary representation of decimal 138.

Any time you're going to interpret a binary number, set something up on a piece of paper that looks like this-

 128 64 32 16 8 4 2 1 1 0 0 0 1 0 1 0

Now, look at those numbers above the boxes with the red 1s and 0s. Those are decimal numbers representing powers of 2. Starting from the left and going to the right they are 2 to the 7th power (2^7), 2 to the 6th power (2^6), 2 to the 5th power (2^5), 2 to the 4th power (2^4), 2 to the 3rd power (2^3), 2 to the 2nd power (2^2), 2 to the 1st power (2^1) and 2 to the 0th power (2^0):

2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
It just so happens that with powers of 2, each successive number is double the one before it. In other words if 2^0 is equal to 1 then 2^1 = 2 and 2^2 = 4 and 2^3 = 8 and so on. Here are the values of the powers of 2 going from 2^7 down to 2^0:

128 64 32 16 8 4 2 1

These are the values that are above the boxes. Now the actual binary number itself consists of 1s and 0s in the blue boxes which somehow magically represents the decimal number 138. How do we get 138 from 10001010? In the binary number when you see a 1, multiply that 1 times the value that is directly over it. Where you see a 0 in the box, just ignore it. So looking at our graphic again,
 128 64 32 16 8 4 2 1 1 0 0 0 1 0 1 0

we see that there is a 1 under the 128, a 1 under the 8, and a 1 under the 2. If we add only those numbers which have a binary 1 in the box under them, we come up with 128+8+2 which equals 138.

Here's another example:

 128 64 32 16 8 4 2 1 1 1 1 0 0 1 1 0

Thus, binary 11100110 is equal to 128+64+32+4+2 which is decimal 230

And another one:

 128 64 32 16 8 4 2 1 1 0 0 0 0 0 0 1

Thus, binary 10000001 is equal to 128+1 which is decimal 129.

Hope this makes more sense than when you started. Be sure to check out the section on Binary Finger Counting to learn how to count to 31 on one hand. See ya!

CLICK [HERE] To Start Counting In Binary on Your Fingers!

[TOP] -- [BINARY HOME] -- [LYZRDSTOMP.COM]