DEV Community

Discussion on: Daily Coding Puzzles - Oct 29th - Nov 2nd

Collapse
 
choroba profile image
E. Choroba
#! /usr/bin/perl
use warnings;
use strict;

sub bin2int {
    my ($i, $r);
    $r += 2 ** $i++ * pop while @_;
    return $r
}

use Test::More tests => 9;
is bin2int(0, 0, 0, 1), 1;
is bin2int(0, 0, 1, 0), 2;
is bin2int(0, 1, 0, 1), 5;
is bin2int(1, 0, 0, 1), 9;
is bin2int(0, 0, 1, 0), 2;
is bin2int(0, 1, 1, 0), 6;
is bin2int(1, 1, 1, 1), 15;
is bin2int(1, 0, 1, 1), 11;
is bin2int((1) x 20), 2 ** 20 - 1;