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
