Keil Logo

Technical Support

On-Line Manuals

Libraries and Floating Point Support Guide

Preface The ARM C and C++ Libraries The ARM C Micro-library Floating-point Support About floating-point support The software floating-point library, fplib Calling fplib routines fplib arithmetic on numbers in a particular format fplib conversions between floats, long longs, doub fplib comparisons between floats and doubles fplib C99 functions Controlling the ARM floating-point environment Floating-point functions for compatibility with Mi C99-compatible functions for controlling the ARM f C99 rounding mode and floating-point exception mac Exception flag handling Functions for handling rounding modes Functions for saving and restoring the whole float Functions for temporarily disabling exceptions ARM floating-point compiler extensions to the C99 Writing a custom exception trap handler Example of a custom exception handler Exception trap handling by signals mathlib double and single-precision floating-point IEEE 754 arithmetic Basic data types for IEEE 754 arithmetic Single precision data type for IEEE 754 arithmetic Double precision data type for IEEE 754 arithmetic Sample single precision floating-point values for Sample double precision floating-point values for IEEE 754 arithmetic and rounding Exceptions arising from IEEE 754 floating-point ar Exception types recognized by the ARM floating-poi Using the Vector Floating-Point (VFP) support libr The C and C++ Library Functions reference Floating-point Support Functions Reference

fplib conversions between floats, long longs, doubles, and ints

3.2.3 fplib conversions between floats, long longs, doubles, and ints

fplib provides a number of routines to perform conversions between number formats.

The following table describes these routines.

Table 3-2 Number format conversion routines

Function Argument types Return type
__aeabi_f2d float double
__aeabi_d2f double float
_fflt int float
_ffltu unsigned int float
_dflt int double
_dfltu unsigned int double
_ffix float int
_ffix_r float int
_ffixu float unsigned int a
_ffixu_r float unsigned int
_dfix double int a
_dfix_r double int
_dfixu double unsigned int a
_dfixu_r double unsigned int
_ll_sto_f long long float
_ll_uto_f unsigned long long float
_ll_sto_d long long double
_ll_uto_d unsigned long long double
_ll_sfrom_f float long long a
_ll_sfrom_f_r float long long
_ll_ufrom_f float unsigned long long a
_ll_ufrom_f_r float unsigned long long
_ll_sfrom_d double long long a
_ll_sfrom_d_r double long long
_ll_ufrom_d double unsigned long long a
_ll_ufrom_d_r double unsigned long long
a 
Rounded toward zero, independently of the current rounding mode. This is because the C standard requires implicit conversions to integers to round this way, so it is convenient not to have to change the rounding mode to do so. Each function has a corresponding function with _r on the end of its name, that performs the same operation but rounds according to the current mode.
Non-ConfidentialPDF file icon PDF versionARM DUI0378H
Copyright © 2007, 2008, 2011, 2012, 2014-2016 ARM. All rights reserved. 
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.