Sha256: 0c1daedac1fa037d309f762721890496af3c94a677512973f200fcaae2647c66

Contents?: true

Size: 331 Bytes

Versions: 374

Compression:

Stored size: 331 Bytes

Contents

class Binary
  def self.to_decimal(binary)
    new(binary).to_decimal
  end

  def initialize(binary)
    raise ArgumentError.new if binary.match(/[^0-1]/)
    @binary = binary
  end

  def to_decimal
    binary.chars.reduce(0) do |decimal, char|
      (decimal * 2) + char.to_i
    end
  end

  private getter binary : String
end

Version data entries

374 entries across 374 versions & 1 rubygems

Version Path
trackler-2.2.1.98 tracks/crystal/exercises/binary/src/example.cr
trackler-2.2.1.97 tracks/crystal/exercises/binary/src/example.cr
trackler-2.2.1.96 tracks/crystal/exercises/binary/src/example.cr
trackler-2.2.1.95 tracks/crystal/exercises/binary/src/example.cr
trackler-2.2.1.94 tracks/crystal/exercises/binary/src/example.cr
trackler-2.2.1.93 tracks/crystal/exercises/binary/src/example.cr
trackler-2.2.1.92 tracks/crystal/exercises/binary/src/example.cr
trackler-2.2.1.91 tracks/crystal/exercises/binary/src/example.cr
trackler-2.2.1.90 tracks/crystal/exercises/binary/src/example.cr
trackler-2.2.1.89 tracks/crystal/exercises/binary/src/example.cr
trackler-2.2.1.88 tracks/crystal/exercises/binary/src/example.cr
trackler-2.2.1.87 tracks/crystal/exercises/binary/src/example.cr
trackler-2.2.1.86 tracks/crystal/exercises/binary/src/example.cr
trackler-2.2.1.85 tracks/crystal/exercises/binary/src/example.cr
trackler-2.2.1.84 tracks/crystal/exercises/binary/src/example.cr
trackler-2.2.1.83 tracks/crystal/exercises/binary/src/example.cr
trackler-2.2.1.82 tracks/crystal/exercises/binary/src/example.cr
trackler-2.2.1.81 tracks/crystal/exercises/binary/src/example.cr
trackler-2.2.1.80 tracks/crystal/exercises/binary/src/example.cr
trackler-2.2.1.79 tracks/crystal/exercises/binary/src/example.cr