diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..8bf4d45
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,6 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/binary-and-decimal.iml b/.idea/binary-and-decimal.iml
new file mode 100644
index 0000000..1d8df90
--- /dev/null
+++ b/.idea/binary-and-decimal.iml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..b0db9b0
--- /dev/null
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..510e7fc
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..d7f43dc
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..94a25f7
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Gemfile b/Gemfile
index 59df67b..27677dc 100644
--- a/Gemfile
+++ b/Gemfile
@@ -1,6 +1,6 @@
source 'http://rubygems.org'
-ruby '2.6.6'
+ruby '2.6.5'
gem 'rake'
diff --git a/lib/binary_to_decimal.rb b/lib/binary_to_decimal.rb
index 439e8c6..7c15db5 100644
--- a/lib/binary_to_decimal.rb
+++ b/lib/binary_to_decimal.rb
@@ -5,5 +5,12 @@
# 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
+ dec = 0
+ i = 0
+ while i < binary_array.length
+ dec += binary_array[i] * 2 ** (binary_array.length - 1 - i)
+ i += 1
+ end
+ return dec
end
+
diff --git a/lib/decimal_to_binary.rb b/lib/decimal_to_binary.rb
new file mode 100644
index 0000000..e7fc872
--- /dev/null
+++ b/lib/decimal_to_binary.rb
@@ -0,0 +1,20 @@
+
+def decimal_to_binary(decimal)
+ bin = Array.new(8)
+ i = 0
+
+ while i < bin.length
+
+ if(decimal - 2 ** (bin.length - 1 - i) < 0)
+ bin[i] = 0
+ else
+ bin[i] = 1
+ decimal -= 2 ** (bin.length - 1 - i)
+ end
+ i += 1
+ end
+
+
+ return bin
+end
+
diff --git a/test/decimal_to_binary_test.rb b/test/decimal_to_binary_test.rb
new file mode 100644
index 0000000..0e646ac
--- /dev/null
+++ b/test/decimal_to_binary_test.rb
@@ -0,0 +1,33 @@
+require 'minitest/autorun'
+require 'minitest/reporters'
+require_relative '../lib/decimal_to_binary'
+
+Minitest::Reporters.use! Minitest::Reporters::SpecReporter.new
+
+describe "decimal to binary" do
+ it "From 153 to 10011001" do
+
+ decimal = 153
+ expected_binary_array = [1, 0, 0, 1, 1, 0, 0, 1]
+
+ expect(decimal_to_binary(decimal)).must_equal expected_binary_array
+ end
+
+ it "From 13 to 00001101" do
+
+ decimal = 13
+ expected_binary_array = [0, 0, 0, 0, 1, 1, 0, 1]
+
+ expect(decimal_to_binary(decimal)).must_equal expected_binary_array
+ end
+
+ it "From 128 to 10000000" do
+
+ expected_binary_array = [1, 0, 0, 0, 0, 0, 0, 0]
+ decimal = 128
+
+ expect(decimal_to_binary(decimal)).must_equal expected_binary_array
+ end
+
+
+end