<!-- var kmNextPage = "armcc_chr1359124233705.htm"; var kmPrevPage = "armcc_chr1359124232675.htm"; var kmNextPageTitle = "Compiler support for floating-point computations a"; var kmPrevPageTitle = "Compiler and library support for half-precision fl"; var kmBreadCrumbs = "<a href=\"default.htm\">Home</a> &raquo; <a href=\"armcc_chr1359124220881.htm\">Compiler Coding Practices</a> &raquo; Half-precision floating-point number format"; kmSetupPaging (); kmNavButtons(); //--> Half-precision floating-point number format

4.48 Half-precision floating-point number format

The half-precision floating-point formats available are `ieee` and `alternative`. In both formats, the basic layout of the 16-bit number is the same.

The half-precision floating-point format is as follows:
Figure 4-1 Half-precision floating-point format

Where:
```   S (bit[15]):      Sign bit
E (bits[14:10]):  Biased exponent
T (bits[9:0]):    Mantissa.
```
The meanings of these fields depend on the format that is selected.
The IEEE half-precision format is as follows:
```IF E==31:
IF T==0: Value = Signed infinity
IF T!=0: Value = Nan
T[9] determines Quiet or Signalling:
0: Quiet NaN
1: Signalling NaN
IF 0<E<31:
Value = (-1)^S x 2^(E-15) x (1 + (2^(-10) x T))
IF E==0:
IF T==0: Value = Signed zero
IF T!=0: Value = (-1)^S x 2^(-14) x (0 + (2^(-10) x T))
```
The alternative half-precision format is as follows:
```IF 0<E<32:
Value = (-1)^S x 2^(E-15) x (1 + (2^(-10) x T))
IF E==0:
IF T==0: Value = Signed zero
IF T!=0: Value = (-1)^S x 2^(-14) x (0 + (2^(-10) x T))
```
 Non-Confidential PDF version ARM DUI0375H Copyright © 2007, 2008, 2011, 2012, 2014-2016 ARM. All rights reserved.

Important information

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

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.