跳轉到內容

Ada 程式設計/屬性/'Compose

來自 Wikibooks,開放世界中的開放書籍

Ada. Time-tested, safe and secure.
Ada. 經久耐用、安全可靠。

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

Ada 參考手冊

[編輯 | 編輯原始碼]
華夏公益教科書