gpt4 book ai didi

perl - Perl 中 float 到十进制转换的二进制表示

转载 作者:行者123 更新时间:2023-12-01 11:04:16 27 4
gpt4 key购买 nike

我阅读了 Stack Overflow 问题 How do I convert a binary string to a number in Perl? 关于如何在 Perl 中将二进制整数转换为十进制整数,反之亦然。但是我该如何为 float 做这件事呢?

例如,从 5.375101.011 的转换,反之亦然。

最佳答案

sub number_to_binary_string {
my $in = shift;
my $sign = $in < 0 and $in = abs $in;
my $out = sprintf "%b.", int $in;
substr $out, 0, 0, '-' if $sign;
$in -= int $in;
do {
if ($in >= .5) {
$out .= '1';
$in -= .5;
}
else {
$out .= '0';
}
$in *= 2;
} while $in > 0;
return $out;
}

sub binary_string_to_number {
my $in = shift;
my ($int,$frac) = split /\./, $in;
my $sign = $int =~ s/^-//;
my $out = oct "0b$int";
my $mult = 1;
for my $digit (split //, $frac) {
$mult *= .5;
$out += $mult * $digit;
}
$out = -$out if $sign;
return $out;
}

关于perl - Perl 中 float 到十进制转换的二进制表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7669010/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com