aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordasJake <no_mail@github.com>2021-11-22 23:20:00 +0100
committerdasJake <no_mail@github.com>2021-11-22 23:20:00 +0100
commit59c35349871502dd9acedfcf24a01e24fc89ec54 (patch)
treefaca31e39c2e2e0a4ff1a3c6d3fe524b734ea4f0
parentf4eeeed382a60317c349a65658019cf110dde1ab (diff)
downloadperlweeklychallenge-club-59c35349871502dd9acedfcf24a01e24fc89ec54.tar.gz
perlweeklychallenge-club-59c35349871502dd9acedfcf24a01e24fc89ec54.tar.bz2
perlweeklychallenge-club-59c35349871502dd9acedfcf24a01e24fc89ec54.zip
140 add helper binary_to_decimal
-rw-r--r--challenge-140/jake/perl/bin2dec.pl30
1 files changed, 30 insertions, 0 deletions
diff --git a/challenge-140/jake/perl/bin2dec.pl b/challenge-140/jake/perl/bin2dec.pl
new file mode 100644
index 0000000000..7fecc9ce09
--- /dev/null
+++ b/challenge-140/jake/perl/bin2dec.pl
@@ -0,0 +1,30 @@
+#!/r/bin/perl
+use strict;
+use warnings;
+
+# get input
+print "binary number a: ";
+my $a = <STDIN>;
+chomp $a;
+
+my $a_decimal = binary_to_decimal ( $a, 0, 0 );
+print "$a_decimal\n";
+
+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 );
+ }
+
+ if ( $tail == 0 ) {
+ print "elsf with $binary_number\n";
+ $power++;
+ return binary_to_decimal ( $binary_number, $power, $acc );
+ }
+} \ No newline at end of file