Ada Programming/Attributes/'Machine Radix
Description
X'Machine_Radix is an Ada attribute where X is any floating or fixed point type. It returns the radix of the hardware representation of type X. On most machines this will be 2.
Machine_Radix is also an Ada aspect that may be set for decimal fixed point types via an attribute definition clause. The value is constrained to either 2 or 10.
Example
with
Ada.Text_IO;procedure
Machine_Radixis
package
T_IOrenames
Ada.Category:Book:Ada Programming/Pages containing deprecated templatesText_IO;package
I_IOis
new
Ada.Category:Book:Ada Programming/Pages containing deprecated templatesText_IO.Category:Book:Ada Programming/Pages containing deprecated templatesInteger_IO (Integer);type
My_Fixed_Point_Typeis
delta
0.Category:Book:Ada Programming/Pages containing deprecated templates1range
-1.Category:Book:Ada Programming/Pages containing deprecated templates0 ..Category:Book:Ada Programming/Pages containing deprecated templates 1.Category:Book:Ada Programming/Pages containing deprecated templates0;type
My_Decimal_Typeis
delta
0.Category:Book:Ada Programming/Pages containing deprecated templates01digits
10;begin
T_IO.Category:Book:Ada Programming/Pages containing deprecated templatesPut ("Radix of Float type = "); I_IO.Category:Book:Ada Programming/Pages containing deprecated templatesPut (Float'Machine_Radix); T_IO.Category:Book:Ada Programming/Pages containing deprecated templatesNew_Line; T_IO.Category:Book:Ada Programming/Pages containing deprecated templatesPut ("Radix of My_Fixed_Point_Type = "); I_IO.Category:Book:Ada Programming/Pages containing deprecated templatesPut (My_Fixed_Point_Type'Machine_Radix); T_IO.Category:Book:Ada Programming/Pages containing deprecated templatesNew_Line; T_IO.Category:Book:Ada Programming/Pages containing deprecated templatesPut ("Radix of My_Decimal_Type type = "); I_IO.Category:Book:Ada Programming/Pages containing deprecated templatesPut (My_Decimal_Type'Machine_Radix); T_IO.Category:Book:Ada Programming/Pages containing deprecated templatesNew_Line;end
Machine_Radix;
The output with GNAT 4.6 on the x86-64 architecture is:
Radix of Float type = 2 Radix of My_Fixed_Point_Type = 2 Radix of My_Decimal_Type type = 2
See also
Wikibook
Ada Reference Manual
- A.5.3: Attributes of Floating Point Types [Annotated]
- A.5.4: Attributes of Fixed Point Types [Annotated]
- Annex K: Language-Defined Aspects and Attributes [Annotated]