Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

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

perlnoobz,
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


Comment on Re: binary converter
Download Code
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";

    Jenda
    Enoch was right!
    Enjoy the last years of Rome.

      Jenda,
      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?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1029908]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others studying the Monastery: (10)
As of 2014-10-22 07:15 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    For retirement, I am banking on:










    Results (114 votes), past polls