Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

23 changes: 23 additions & 0 deletions .idea/binary-and-decimal.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/inspectionProfiles/Project_Default.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Gemfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
source 'http://rubygems.org'

ruby '2.6.6'
ruby '2.6.5'

gem 'rake'

Expand Down
9 changes: 8 additions & 1 deletion lib/binary_to_decimal.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Comment on lines 5 to 7
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

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

20 changes: 20 additions & 0 deletions lib/decimal_to_binary.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@

def decimal_to_binary(decimal)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 Nice work

You can use bin = decimal % 2 to get the remainder of the decimal number divided by 2.

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

33 changes: 33 additions & 0 deletions test/decimal_to_binary_test.rb
Original file line number Diff line number Diff line change
@@ -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