Your skill will accomplishwhat the force of many cannot 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";
[download]```

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";
[download]```

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 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
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
My travels bear the most uncanny semblance to ...

Results (81 votes). Check out past polls.

Notices?