2のn乗を計算して、bcの結果と比較する。2^1024はinf、2^1023以下はbcの結果と同じ。
$ echo 'n=0;for(i=1024;i>=0;i--){n=2^i;n}' | bc | perl -ne 'chomp;if(s/\\//){print $_}else{print "$_\n"}' > inf.bc.txt $ perl -e 'BEGIN{$n=0}for($i=1024;$i>=0;$i--){$n=2**$i;printf "%.0f\n",$n}' > inf.pl.txt $ diff inf.pl.txt inf.bc.txt 1c1 < inf --- > 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216
2^1023まで表現できてたということは、1023ビットまでは表現できると考えて、1023番目以下のビットを立てていく。すると、53行目までは等しいが、それ以降はinfになってしまう。
$ echo 'n=0;for(i=1023;i>=0;i--){n+=2^i;n}' | bc | perl -ne 'chomp; if(s/\\//){print $_}else{print "$_\n"}' > inf.bc.2txt $ perl -e 'BEGIN{$n=0}for($i=1023;$i>=0;$i--){$n+=2**$i;printf "%.0f\n",$n}' > inf.pl.2txt $ diff inf.pl.2txt inf.bc.2txt | less
なんかおかしくないか?