Ada 编程/属性/'Compose
外观
X'Compose(Fraction : X, Exponent : Integer) 是一个 Ada 属性,其中 X 是任何浮点类型。
浮点类型表示为
其中
- sign 为 1 或 -1
- mantissa 是以 radix 为基数的分数
- radix 是硬件基数(通常为 2)
- exponent 是一个整数
'Compose(Fraction, Exponent) 返回具有用 Exponent 替换的指数的浮点数 Fraction。
with Ada.Text_IO; procedure Compose is package T_IO renames Ada.Text_IO; package F_IO is new Ada.Text_IO.Float_IO (Float); X : Float := 1.0; begin T_IO.Put (" X = "); F_IO.Put(Item => X, Exp => 0); T_IO.New_Line; for Exp in -2..2 loop T_IO.Put ("Float'Compose(X, " & Integer'Image(Exp) & ") = "); F_IO.Put(Item => Float'Compose(X, Exp), Exp => 0); T_IO.New_Line; end loop; end Compose;
在 x86-64 架构上使用 GNAT 4.6 的输出为
X = 1.00000 Float'Compose(X, -2) = 0.12500 Float'Compose(X, -1) = 0.25000 Float'Compose(X, 0) = 0.50000 Float'Compose(X, 1) = 1.00000 Float'Compose(X, 2) = 2.00000