in reply to binary converter
perlnoobz,
I will re-write your code and explain it. I hope it makes sense and isn't more confusing to you.
I will re-write your code and explain it. I hope it makes sense and isn't more confusing to you.
#!/usr/bin/perl use strict; use warnings; # Obtain a binary string from the user or die trying print "Your binary input please => "; chomp(my $bin = <STDIN>); die "'$bin' is not binary\n" if $bin =~ /[^01]/; # Binary numbers are easier to convert right to left # We will reverse the numbers to do this my @position = reverse split //, $bin; # Now the right most value is in the first slot of the array # And the left most value is in the last slot of the array my $tot = 0; # Normally when we loop over an array, we loop over its values # In this case, looping over its indices allows us to do powers of 2 # $#position is the last index in the array for my $idx (0 .. $#position) { $tot += $position[$idx] * 2 ** $idx; # had a typo here with $digi +t[$idx] } print "\n$tot\n";
Cheers - L~R
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: binary converter
by Jenda (Abbot) on Apr 23, 2013 at 12:20 UTC | |
by Limbic~Region (Chancellor) on Apr 23, 2013 at 17:25 UTC |
In Section
Seekers of Perl Wisdom