Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Digital Literacy Computer Basics Computer Basics Binary

what number does this represent 00000011

what number does this represent 00000011

3 Answers

Steven Parker
Steven Parker
231,271 Points

Here's one way to decode binary numbers. Make a column for each digit, and starting from the right, put a "1" and then as you move left put double the value of the column next to it. Remember, right-to-left (:point_left: THIS WAY :point_left:). You'll get something like this, which is a horizontal version of the helper table shown in the quiz:

128  64  32  16   8   4   2   1   <-- 8 columns for 8 digits

Then, put your binary number on the next line, spread into the columns. Now below that, multiply each top number by the binary digit and put the result below. It's easy, since binary digits are either 1 or 0, so you either put the number on top again or zero.

Then finally, add up all the numbers on the bottom row and that's your answer. Like this:

128  64  32  16   8   4   2   1   <-- starting columns
  0   0   0   0   0   0   1   1   <-- multiply by your binary digits
--- --- --- --- --- --- --- ---
  0   0   0   0   0   0   2   1   <-- add these up:  2 + 1  =  3

Also, since zeros in front don't count you can skip them. So in this case we really only needed 2 columns.

If your unsure at anytime, simply google something like 'decimal to binary converter' then you can convert any binary number to decimal.

Vladislav Trotsenko
Vladislav Trotsenko
9,291 Points

What about Horner's method? :) From left to right 0*2+current number=current result -> current result*2+current number ... to n

My ruby realization:

class Integer
  def to_dec
    if is_a?(Integer)
        abort "It is not a binary number!" unless !to_s.match(/[^01]/)
      to_s.chars.map(&:to_i).inject { |memo, item| memo*2 + item }
    else
      "It is not a number!"
    end
  end
end