From 8bb581d2aac4c7027fddc6ced1087c35f6e5be15 Mon Sep 17 00:00:00 2001 From: jfahmy Date: Fri, 17 Aug 2018 14:36:07 -0700 Subject: [PATCH 1/2] binary to decimal method created, tests passed --- lib/binary_to_decimal.rb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lib/binary_to_decimal.rb b/lib/binary_to_decimal.rb index 439e8c6..454abd0 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 = 7 + binary_array.length.times do |i| + decimal_value += (binary_array[i] * (2 ** idx)) + idx -= 1 + end + + decimal_value end From ca74b9d11c600deabbdbf716741c6be8a6c981ea Mon Sep 17 00:00:00 2001 From: jfahmy Date: Mon, 20 Aug 2018 21:09:29 -0700 Subject: [PATCH 2/2] more solutions for printing binary --- lib/binary_to_decimal.rb | 2 +- lib/printbinary.rb | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 lib/printbinary.rb diff --git a/lib/binary_to_decimal.rb b/lib/binary_to_decimal.rb index 454abd0..aaf2bfd 100644 --- a/lib/binary_to_decimal.rb +++ b/lib/binary_to_decimal.rb @@ -7,7 +7,7 @@ def binary_to_decimal(binary_array) decimal_value = 0 - idx = 7 + idx = binary_array.length - 1 binary_array.length.times do |i| decimal_value += (binary_array[i] * (2 ** idx)) idx -= 1 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