http://www.perlmonks.org?node_id=54125


in reply to Re: decimal to binary
in thread decimal to binary

I'm working on it and I have found shortest way to do that
sub to_bin { my( $num , $len ) = ( shift , 0 ); while( $num >> $len ){ $len++ ;} return reverse map {( $num & 1 << $_ ) ? "1" : "0";}(0..$len-1); }
did someone can do better ? ( I'm sure you can, I trust in you ;)

Replies are listed 'Best First'.
Re: Re: Re: decimal to binary
by repson (Chaplain) on Jan 25, 2001 at 11:50 UTC
    Another WTDI.

    A one liner (I'm no true obfuscator):
    perl -ne 'undef@_;while($_){$_[0]=($_&1&&1||0).$_[0];$_>>=1}print"@_\n"'

    Or a more sensible sub version with the same logic.

    sub to_bin { my $num = shift; my $ret = ''; while ($num) { $ret = (($num % 2) ? 0 : 1) . $ret; $num >>= 1; } return $ret; }