my @tbl = (0.5, 0.25, 0.125, 0.0625, 0.03125, 0.015625, 0.0078125, 0.00390625); my $step = 0.01; my $fmt = "%.2f : 0.%s : %.8f : %.8f\n"; my $acm; my $cal; my $bin; for(my $i = 0; $i < 1; $i += $step) { $cal = $i; $acm = 0; $bin = ""; for(my $m=0; $m<8; $m++) { $cal = $cal * 2; if ($cal >= 1) { $acm += $tbl[$m]; $cal -= 1; $bin .= "1"; } else { $bin .= "0"; } } printf($fmt, $i, $bin, $acm, $i - $acm); }