48-bit floating point: Difference between revisions

From NDWiki
Jump to navigation Jump to search
(Initial 48-bit floating point page)
 
(Corrected, extended, reference added)
 
Line 1: Line 1:
'''Norsk Data 48-bit single precision format:'''
'''Norsk Data 48-bit floating point format:'''
{|
 
|-
The [[NORD-10]] and the [[ND-100]] could use two different hardware floating point formats, either the 48-bit format described on this page, or alternatively ordered with [[32-bit floating point]] hardware.
| bit 47 || (1 bit|| Sign bit
 
|-
The [[ND-500]] and [[ND-5000 family|ND-5000]] used only the [[32-bit floating point]] format for single precision, and [[64-bit floating point]] as double precision. The ND-100 (or -110, -120) front ends in those systems would normally have come with the 32-bit option in order to be compatible with their 500(0) companion. The 48-bit format described on this page is only used by the 16-bit ND computers.
| bit 46-32 ||  (15 bits) || Exponent
|-
| bit 31-0 || (32 bits) || Mantissa
|-
|}
Exponent has a bias of +256. (Subtract 256 to get true exponent)


'''Special values for exponent:'''
{|class="wikitable"
{|
!Field !! #Bits !! Purpose
|-
|-
| ''All bits zero except sign bit'': || '''Floating underflow'''.
|bit 47 || 1 || Sign bit
|-
|-
| ''0 (binary 0, aka 0x00)'': || '''Zero'''
|bit 46-32 || 15 || Exponent
|-
|-
| bit 31-0 || 32 || Mantissa
|}
|}


Mantissa has an implicit 33th bit of 1 (unless mantissa is 0).
* The mantissa is normalized: 0.5 ≤ ''mantissa'' < 1
This is the 0.5 bit, i.e. mantissa is normalised to be 0.5 < mantissa < 1.0
* The mantissa has no implicit bit, unlike the [[32-bit floating point|32-bit]] and [[64-bit floating point|64-bit]] formats
* The decimal point is thus to the left of the 32th bit (before exponent is applied)
* The exponent has a bias of 2<sup>14</sup>, or 16384 (subtract 16384 to get true exponent)
 
'''Special values'''
* All 48 bits zero: '''Zero.'''
* ''(Any special value (e.g. -0) reprecenting floating point underflow is not documented in the ND-100 reference manual)
 
'''Precision'''
* 32 bits or approximately 10 decimal digits


Decimal point is thus to the left of the implicit 33th bit.
'''Range'''
* 2<sup>-16384</sup> - 0.5 &le; X &lt; 2<sup>16383</sup> - 1 or X = 0
or
* approximately 10<sup>-4920</sup> &lt; X &lt; 10<sup>4920</sup>


The 48-bit floating point format is only used by the 16-bit ND computers, the 32-bit computers used the [[32-bit_floating_point|32-bit format]] as its single precision format.
=== Sources ===
* {{ND-doc|06.014.02}}

Latest revision as of 05:21, 25 May 2016

Norsk Data 48-bit floating point format:

The NORD-10 and the ND-100 could use two different hardware floating point formats, either the 48-bit format described on this page, or alternatively ordered with 32-bit floating point hardware.

The ND-500 and ND-5000 used only the 32-bit floating point format for single precision, and 64-bit floating point as double precision. The ND-100 (or -110, -120) front ends in those systems would normally have come with the 32-bit option in order to be compatible with their 500(0) companion. The 48-bit format described on this page is only used by the 16-bit ND computers.

Field #Bits Purpose
bit 47 1 Sign bit
bit 46-32 15 Exponent
bit 31-0 32 Mantissa
  • The mantissa is normalized: 0.5 ≤ mantissa < 1
  • The mantissa has no implicit bit, unlike the 32-bit and 64-bit formats
  • The decimal point is thus to the left of the 32th bit (before exponent is applied)
  • The exponent has a bias of 214, or 16384 (subtract 16384 to get true exponent)

Special values

  • All 48 bits zero: Zero.
  • (Any special value (e.g. -0) reprecenting floating point underflow is not documented in the ND-100 reference manual)

Precision

  • 32 bits or approximately 10 decimal digits

Range

  • 2-16384 - 0.5 ≤ X < 216383 - 1 or X = 0

or

  • approximately 10-4920 < X < 104920

Sources