diff options
| author | dasJake <no_mail@github.com> | 2021-11-23 21:42:48 +0100 |
|---|---|---|
| committer | dasJake <no_mail@github.com> | 2021-11-23 21:42:48 +0100 |
| commit | 7273b996d81ab9cc525f3cc5163a9ff135ede306 (patch) | |
| tree | 19295de4e28922a96f85aac7b354746b99a864af | |
| parent | afec256a9d3aadf2e7f97a8911bb6ee96ce9f491 (diff) | |
| download | perlweeklychallenge-club-7273b996d81ab9cc525f3cc5163a9ff135ede306.tar.gz perlweeklychallenge-club-7273b996d81ab9cc525f3cc5163a9ff135ede306.tar.bz2 perlweeklychallenge-club-7273b996d81ab9cc525f3cc5163a9ff135ede306.zip | |
140 refactor binary_to_decimal
| -rw-r--r-- | challenge-140/jake/perl/bin2dec.pl | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/challenge-140/jake/perl/bin2dec.pl b/challenge-140/jake/perl/bin2dec.pl index 7fecc9ce09..6514d88e7d 100644 --- a/challenge-140/jake/perl/bin2dec.pl +++ b/challenge-140/jake/perl/bin2dec.pl @@ -3,28 +3,33 @@ use strict; use warnings; # get input -print "binary number a: "; -my $a = <STDIN>; -chomp $a; +print "binary number: "; +my $binary_input = <STDIN>; +chomp $binary_input; -my $a_decimal = binary_to_decimal ( $a, 0, 0 ); +my $a_decimal = binary_to_decimal ( $binary_input ); print "$a_decimal\n"; sub binary_to_decimal { + my ( $binary ) = @_; + + return _binary_to_decimal ( $binary, 0, 0 ); +} + +sub _binary_to_decimal { my ( $binary_number, $power, $acc, $tail ) = @_; - print "begin sub with $binary_number\n"; return $acc if $binary_number eq ''; + $tail = chop ($binary_number); + if ( $tail == 1 ) { - print "if with $binary_number\n"; $acc += 2**$power; $power++; - return binary_to_decimal ( $binary_number, $power, $acc ); + return _binary_to_decimal ( $binary_number, $power, $acc ); } if ( $tail == 0 ) { - print "elsf with $binary_number\n"; $power++; - return binary_to_decimal ( $binary_number, $power, $acc ); + return _binary_to_decimal ( $binary_number, $power, $acc ); } }
\ No newline at end of file |
