Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot

Re: binary converter

by Limbic~Region (Chancellor)
on Apr 22, 2013 at 15:30 UTC ( #1029908=note: print w/replies, xml ) Need Help??

in reply to binary converter

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

    The position shoul be digit :-)

    In either case you do not need the index nor the ** operator.

    my @digit = reverse split //, $bin; my $num = 0; for my $bit (@digit) { $num = $num * 2 + $bit; } print "\n$num\n";

    Enoch was right!
    Enjoy the last years of Rome.

      Or digit should have been position.

      I wouldn't have written the code I did for myself - it was intended to be more instructional since the OP indicated not understanding the for loop. I guess I should have paid closer attention (updated now). Thanks!

      Cheers - L~R

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1029908]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (3)
As of 2018-04-21 20:07 GMT
Find Nodes?
    Voting Booth?