diff --git a/lib/binary_to_decimal.rb b/lib/binary_to_decimal.rb index 439e8c6..aaf2bfd 100644 --- a/lib/binary_to_decimal.rb +++ b/lib/binary_to_decimal.rb @@ -5,5 +5,13 @@ # Calculate and return the decimal value for this binary number using # the algorithm you devised in class. def binary_to_decimal(binary_array) - raise NotImplementedError + decimal_value = 0 + + idx = binary_array.length - 1 + binary_array.length.times do |i| + decimal_value += (binary_array[i] * (2 ** idx)) + idx -= 1 + end + + decimal_value end diff --git a/lib/printbinary.rb b/lib/printbinary.rb new file mode 100644 index 0000000..c88e8be --- /dev/null +++ b/lib/printbinary.rb @@ -0,0 +1,40 @@ +#uses rand method, which might be cheating? +def print_binary + all_values = [] + + until all_values.length == 16 + four_bits = [] + 4.times do + four_bits << rand(0..1).to_s + end + if !all_values.include? four_bits + all_values << four_bits + end + end + + all_values.map! {|sequence| sequence.join } + + puts "#{all_values}" +end + +def print_binary2 + bits = [] + binary = "" + + 16.times do |num| + binary = "" + until binary.length == 4 + if num % 2 == 0 + binary = "0" + binary + else + binary = "1" + binary + end + num = num >> 1 + end + bits << binary + end + +puts bits +end + +print_binary2