diff --git a/binary_decimal.rb b/binary_decimal.rb new file mode 100644 index 0000000..0cbaf39 --- /dev/null +++ b/binary_decimal.rb @@ -0,0 +1,3 @@ +def binary_to_decimal() + +end diff --git a/binary_to_decimal.rb b/binary_to_decimal.rb new file mode 100644 index 0000000..d31cf75 --- /dev/null +++ b/binary_to_decimal.rb @@ -0,0 +1,17 @@ +def binary_to_decimal(binary_array) + decimal_array = [] + power_of_2 = 7 + binary_array.each do |bit| + decimal_of_bit = bit * (2 ** power_of_2) + + decimal_array << decimal_of_bit + power_of_2 = power_of_2 - 1 + end + + sum = 0 + decimal_array.each do |decimal| + sum += decimal + end + + return sum +end diff --git a/lib/binary_to_decimal.rb b/lib/binary_to_decimal.rb index 439e8c6..d31cf75 100644 --- a/lib/binary_to_decimal.rb +++ b/lib/binary_to_decimal.rb @@ -1,9 +1,17 @@ -# A method named `binary_to_decimal` that receives as input an array of size 8. -# The array is randomly filled with 0’s and 1’s. -# The most significant bit is at index 0. -# The least significant bit is at index 7. -# 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_array = [] + power_of_2 = 7 + binary_array.each do |bit| + decimal_of_bit = bit * (2 ** power_of_2) + + decimal_array << decimal_of_bit + power_of_2 = power_of_2 - 1 + end + + sum = 0 + decimal_array.each do |decimal| + sum += decimal + end + + return sum end