Binary Representation

This page has a lot of commented out text that should be read over and removed or moved. --MF, 12/18/17

We've looked at how the number of bits used to represent an integer affects how big it can be. Now we turn to the specific way a single-word integer is encoded as bits.

The word "bit" is an abbreviation for binary digit.
People generally use base ten (decimal) digits to write numbers. Computers, because of the digital abstraction, use base two (binary).

In base 10, there are ten digits (0-9), and each place is worth ten times as much as the place to its right.
place values in decimal 3761: 3 1000's 7 100's 6 10's 1 1's

In binary, base 2, there are only two digits (0 and 1), and each place is worth two times the place to its right.

The subscript 2 on 11012 means the 1101 is in base 2. Numbers are normally written in base 10, so a subscript 10 is only used when needed for clarity.
place values in binary 1101: 1 8's 1 4's 0 2's 1 1's

  1. Talk with Your Partner Watch this Binary Timer Snap! program run. Write a description of the binary counter's behavior. Explain what you see going on.
    A timer which shows the time both in the decimal and the binary system.

Reading Binary

In base 10 notation, each place value represents a power of ten: the units place (100 = 1), the tens place (101 = 10), the hundreds place (102 = 100), the thousands place (103 = 1000), etc. So, for example:

9827   =   9 × 103  +  8 × 102  +  2 × 101  +  7 × 100

place values in binary 10010: 1 16's 0 8's 0 4's 1 2's 0 1's Base 2 uses the same idea but with powers of two instead of powers of ten. Binary place values represent the units place (20 = 1), the twos place (21 = 2), the fours place (22 = 4), the eights place (23 = 8), the sixteens place (24 = 16), etc. So, for example:

100102   =   1 × 24  +  0 × 23  +  0 × 22  +  1 × 21  +  0 × 20   =   16  +  2   =   1810

To translate from binary (for example, 1011012) to base 10, first, write the number out on paper. Then write out the binary place values by doubling left from the units place:

1011012 has only six digits, so we don't need powers of two to the left of that.
1 0 1 1 0 1
32 16 8 4 2 1
right-to-left arrow

This means that this number is, in base 10, 32 + 8 + 4 + 1 = 45. So, 1011012 = 4510.

  1. Translate these binary representations into base 10 notation:
    1. 1012
    2. 1112
    3. 10100112
    4. 10000000002

Writing Binary

To translate from base 10 (like 8910) to base 2, first write out the binary place values by doubling left from the units place until you get to a value larger than your number (128 for this example). Then think, "I can take out a 64, so I write a 1 there, and there's 25 left (89 − 64). I have 0 thirty-twos, because I only have 25. But I can take out 16, and there's 9 left. So, 8 and 1 are the last nonzero bits.

Either way you are converting (and between any bases), always write the place values right-to-left (just as with units, tens, hundreds, etc.), and always write the number itself left-to-right.
Mary, this is a sloppy use of tables when I probably should be using some kind of CSS. Fix later. --MF, 12/8/17
89
25
9
1
0
right-to-left arrow
128 64 32 16 8 4 2 1
  1 0 1 1 0 0 1

I'm confused about why the arrow is going from right to left. Will that confuse students? Most of the work happens going left to right. Maybe there should be another arrow below the table that goes the other way... --MF, 2/12/18

Now, read the number off: 10110012 = 8910.

Here's a more precise description of this algorithm to find the base 2 representation of any positive integer:

  1. First, find the largest power of two that is less than the number.
  2. Then, subtract that power of 2 from the number, keep the new number, and record a 1 in the place for that power of 2.
  3. There is Another Algorithm for Converting to Binary.
    (Change from a "comment" to a "sidenote" when page is complete.) --MF, 11/20/17
  4. Then, determine if the next largest power of 2 that is less than the new number, and: Repeat this whole step with the next largest power of 2 until you have a bit (1 or 0) for all the remaining places down to and including the ones place (by which point you should have nothing left of the original number).

The string of ones and zeros you have recorded is the binary representation of your original number.

  1. Represent these base 10 representations in binary (base 2):
    1. 63
    2. 64
    3. 65
    4. 129
    5. 128
    6. 127