From be9b34009cb1e1be379f7dc8bffed310fa2e8b98 Mon Sep 17 00:00:00 2001 From: qqdipps Date: Fri, 22 Feb 2019 20:24:38 -0800 Subject: [PATCH 1/2] binary_to_decimal methof good, tests pass. --- .vscode/launch.json | 15 +++++++++++++++ lib/binary_to_decimal.rb | 13 ++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 .vscode/launch.json diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..10f2f39 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,15 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Debug Local File", + "type": "Ruby", + "request": "launch", + "cwd": "${workspaceRoot}", + "program": "${file}" + } + ] +} \ No newline at end of file diff --git a/lib/binary_to_decimal.rb b/lib/binary_to_decimal.rb index 439e8c6..debeb16 100644 --- a/lib/binary_to_decimal.rb +++ b/lib/binary_to_decimal.rb @@ -1,3 +1,4 @@ +require "pry" # 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. @@ -5,5 +6,15 @@ # 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 + binary_array_length = binary_array.length + sum = 0 + binary_array_length.times do |i| + index = (binary_array_length - 1) - i + if binary_array[index] == 1 + sum += 2 ** i + end + end + return sum end + +p binary_to_decimal([1, 0, 1]) From ea87c2e1cb3a5b3a99cb4528d66e6ec5c6976726 Mon Sep 17 00:00:00 2001 From: qqdipps Date: Fri, 22 Feb 2019 21:45:59 -0800 Subject: [PATCH 2/2] refactored & renamed sum var to decimal --- lib/binary_to_decimal.rb | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/lib/binary_to_decimal.rb b/lib/binary_to_decimal.rb index debeb16..30854f0 100644 --- a/lib/binary_to_decimal.rb +++ b/lib/binary_to_decimal.rb @@ -7,14 +7,9 @@ # the algorithm you devised in class. def binary_to_decimal(binary_array) binary_array_length = binary_array.length - sum = 0 + decimal = 0 binary_array_length.times do |i| - index = (binary_array_length - 1) - i - if binary_array[index] == 1 - sum += 2 ** i - end + decimal += binary_array[binary_array_length - 1 - i] * 2 ** i end - return sum + return decimal end - -p binary_to_decimal([1, 0, 1])