0

IEEE 754 倍精度形式の数値を表す 64 ビットが与えられた場合、それらを同じ数値を表す 32 ビットに変換するためのアルゴリズムは何ですか?ただし、IEEE 754 単精度形式 (おそらく精度が失われます)。

また、ビットを操作することなく、Ada でこの変換を実行する簡単な方法はありますか?

4

1 に答える 1

6

実際、Ada でこれを行う簡単な方法があります (C で同じことを行う方法と非常によく似ています!):

with Ada.Numerics;
with Ada.Text_IO; use Ada.Text_IO;
procedure Floating_Conversion is
   D : constant Long_Float := Ada.Numerics.Pi;
   F : Float;
begin
   F := Float (D);                                    -- The conversion!
   Put_Line ("double:" & Long_Float'Image (D));
   Put_Line ("single:" & Float'Image (F));
end Floating_Conversion;
于 2013-08-20T17:31:19.503 に答える