>>784
Perl
use feature qw(say);

sub ieee754_32bit {
    my ($n) = @_;

    my $s = ($n < 0 ? 1 : 0);
    $n = abs($n);

    my $e = 0;
    if ($n == 0){
        $n = 1;
        $e = -127;
    }
    while($n >= 2){
        $n /= 2;
        $e++;
    }
    while($n < 1){
        $n *= 2;
        --$e;
    }

    my $d = ($s << 31) | ((127 + $e) << 23) | int(($n - 1) * (1 << 23) + 0.5);
    return unpack('B*', pack('N', $d));
}

foreach(1, 1.5, 5.23, -1.25, -3.888, -100.0099){
    say $_;
    say join(' ', ieee754_32bit($_) =~ /([01]{4})/g);
}