Decimal floating point number to binary: Difference between revisions
Decimal floating point number to binary (view source)
Revision as of 23:06, 4 October 2019
, 4 years agoAdded Perl example
m (change to allow arbitrary sized number strings) |
SqrtNegInf (talk | contribs) (Added Perl example) |
||
Line 1,064:
23.700000 => 23.700000; expected 23.700000 [PASS]
=={{header|Perl}}==
<lang perl>use strict;
use warnings;
use feature 'say';
sub dec2bin {
my($l,$r) = split /\./, shift;
my $int = unpack('B*', pack('N', $l ));
my $frac = unpack('B32', pack('N',4294967296 * ".$r"));
"$int.$frac" =~ s/^0*(.*?)0*$/$1/r;
}
sub bin2dec {
my($l,$r) = split /\./, shift;
my $frac = my $i = 0;
--$i, $frac += $_ * 2**$i for split '', $r;
eval('0b'.$l) + $frac;
}
say dec2bin(23.34375);
say bin2dec('1011.11101');</lang>
{{out}}
<pre>10111.01011
11.90625</pre>
=={{header|Perl 6}}==
|