Content deleted Content added
Undid revision 1261731132 by 176.4.141.13 (talk) No, +0 and −0 are different values. |
nicer table for BID encoding, WIP, e.g. misleading table before has to be removed as only valid for BID, not DPD, and DPD table should also be improved, pls. do NOT revert for silly nitpicking, edits ike these are time consuming work! |
||
Line 61:
As described above, the encoding varies depending on whether the most significant {{val|4|u=bits}} of the significand are in the range 0 to 7 (0000<sub>2</sub> to 0111<sub>2</sub>), or higher (1000<sub>2</sub> or 1001<sub>2</sub>).
If the 2 after the sign bit are "00", "01", or "10", then the exponent field consists of the {{val|10|u=bits}} following the sign bit, and the significand is the remaining {{val|53|u=bits}}, with an implicit leading {{val|0|u=bit}}
If the {{val|2|u=bits}} after the sign bit are "11", then the 10-bit exponent field is shifted {{val|2|u=bits}} to the right (after both the sign bit and the "11" bits thereafter), and the represented significand is in the remaining {{val|51|u=bits}}. In this case there is an implicit (that is, not stored) leading 3-bit sequence "100" for the
▲If the {{val|2|u=bits}} after the sign bit are "11", then the 10-bit exponent field is shifted {{val|2|u=bits}} to the right (after both the sign bit and the "11" bits thereafter), and the represented significand is in the remaining {{val|51|u=bits}}. In this case there is an implicit (that is, not stored) leading 3-bit sequence "100" for the most bits of the true significand (in the remaining lower bits ''ttt...ttt'' of the significand, not all possible values are used).
{| class="wikitable" style="text-align:left; border-width:0;"
|+ BID Encoding
|-
! colspan="11" | Combination Field
!
!
! rowspan="2" |
! rowspan="2" | Exponent
! rowspan="2" |Significand
! rowspan="2" | Description
|-
! g12 !! g11 !! g10 !! g9 !! g8 !! g7 !! g6 !! g5 !! g4 !! g3 !! g2
!g1
!g0
|-
| colspan="17" |combination field not! starting with '11', bits ab = 00, 01 or 10
|-
| style="background:#cedff2;" | '''a''' || style="background:#cedff2;" | '''b''' || style="background:#cedff2;" | '''c''' || style="background:#cedff2;" | '''d''' || style="background:#cedff2;" | '''m''' || style="background:#cedff2;" | '''m''' || style="background:#cedff2;" | '''m''' || style="background:#cedff2;" | '''m''' || style="background:#cedff2;" | '''m''' || style="background:#cedff2;" | '''m''' || style="background:#cef2e0;" | '''e''' || style="background:#cef2e0;" |'''f''' || style="background:#cef2e0;" |'''g'''
| || style="background:#cedff2;" | '''abcdmmmmmm''' || style="background:#cef2e0;" | (0)'''efgtttttttttttttttttttttttttttttttttttttttttttttttttt''' || Finite number with small first digit of significand (0 … 7).
|-
| colspan="17" |combination field starting with '11', but not 1111, bits ab = 11, bits cd = 00, 01 or 10
|-
| 1 || 1 || style="background:#cedff2;" | '''c'''|| style="background:#cedff2;" | '''d''' || style="background:#cedff2;" | '''m''' || style="background:#cedff2;" | '''m''' || style="background:#cedff2;" | '''m''' || style="background:#cedff2;" | '''m''' || style="background:#cedff2;" | '''m''' || style="background:#cedff2;" | '''m''' || style="background:#cedff2;" | '''e''' || style="background:#cedff2;" | '''f''' || style="background:#cef2e0;" | '''g'''
| || style="background:#cedff2;" | '''cdmmmmmmef''' || style="background:#cef2e0;" | '''100gtttttttttttttttttttttttttttttttttttttttttttttttttt''' || Finite number with big first digit of significand (8 or 9).
|-
| colspan="17" |combination field starting with '1111', bits abcd = 1111
|-
| 1 || 1 || 1 || 1 || 0 || colspan="6" |
|
|
| rowspan="3" | || || || ±Infinity
|-
| 1 || 1 || 1 || 1 || 1 ||0
| colspan="5" |
|
|
|
| || quiet NaN
|-
|1
|1
|1
|1
|1
|1
| colspan="5" |
|
|
|
|
|signaling NaN (with payload in significand)
|}
The leading bits of the significand field do ''not'' encode the most significant decimal digit; they are simply part of a larger pure-binary number. For example, a significand of {{gaps|8|000|000|000|000|000}} is encoded as binary {{gaps|0111|0001101011|1111010100|1001100011|0100000000|0000000000}}<sub>2</sub>, with the leading {{val|4|u=bits}} encoding 7; the first significand which requires a 54th bit is {{math|size=100%|1=2<sup>53</sup> = {{gaps|9|007|199|254|740|992}}.}} The highest valid significant is {{gaps|9|999|999|999|999|999}} whose binary encoding is
{{gaps|(100)0|1110000110|1111001001|1011111100|0000111111|1111111111}}<sub>2</sub> (with the 3 most significant bits (100) not stored but implicit as shown above; and the next bit is always zero in valid encodings).
|