As you're golfing, there are a few trivial modifications that can save a few characters (update: 4 characters). Omit the semicolons after the sub definitions and for loops, and change ($/*=16)%=O to $/=$/*16%O.
$|=print 3.2;sub O{8*($@-$_)+(1,4,5,6)[$:]}sub o{(-4,2,1,1)[$:]/O}while($,=++$@){for$:(0..3){ for (0..$@) {for$" (($/=1) ..$_){ $/=$/* 16%O} $,-=$/ *o}$, -=16** $_*o for-6..- 1}printf "%x",$,* 16%16}
In reply to Re: Hexadecimal representation of pi
by ambrus
in thread Hexadecimal representation of pi
by weixi
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |