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 trialMonica Wallace
Courses Plus Student 1,660 Pointswhat number does this represent 00000011
what number does this represent 00000011
3 Answers
Steven Parker
231,271 PointsHere'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 ( THIS WAY ). 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.
harrywigman
568 PointsIf your unsure at anytime, simply google something like 'decimal to binary converter' then you can convert any binary number to decimal.
Vladislav Trotsenko
9,291 PointsWhat 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