0

给定 64 位代表 IEEE 754 双精度格式的数字,将它们转换为代表相同数字但采用 IEEE 754 单精度格式(可能会丢失精度)的 32 位的算法是什么?

此外,是否有一种简单的方法可以在 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 回答