<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 2/11/2014 4:53 PM, Martin Frb wrote:<br>
    </div>
    <blockquote cite="mid:52FAC619.9020805@mfriebe.de" type="cite">
      <meta http-equiv="content-type" content="text/html;
        charset=ISO-8859-1">
      I am trying to figure out the internal representation of these.
      (So they can be converted, including conversion form sizes not
      present in fpc)<br>
      <br>
      They are all floating point? Pascal has no fixed point?
      (nevertheless, rules for fixed point may also be of interest)<br>
      <br>
      dwarf2 says it is specified in each platforms ABI, but I have not
      found that (not even found the ABI yet).<br>
      Only found:
      <a moz-do-not-send="true" class="moz-txt-link-freetext"
href="http://en.wikipedia.org/wiki/Computer_number_format#Representing_fractions_in_binary">http://en.wikipedia.org/wiki/Computer_number_format#Representing_fractions_in_binary</a><br>
      <br>
      And <a moz-do-not-send="true" class="moz-txt-link-freetext"
href="http://www.freepascal.org/docs-html/ref/refsu6.html#x28-310003.1.2">http://www.freepascal.org/docs-html/ref/refsu6.html#x28-310003.1.2</a><br>
      <br>
      <blockquote type="cite">
        <table id="TBL-5" class="tabular" cellpadding="0"
          cellspacing="0">
          <tbody>
            <tr style="vertical-align:baseline;" id="TBL-5-1-">
              <td style="white-space:nowrap; text-align:left;"
                id="TBL-5-1-1" class="td11">Type </td>
              <td style="white-space:nowrap; text-align:center;"
                id="TBL-5-1-2" class="td11"> Range </td>
              <td style="white-space:nowrap; text-align:center;"
                id="TBL-5-1-3" class="td11">Significant digits</td>
              <td style="white-space:nowrap; text-align:right;"
                id="TBL-5-1-4" class="td11"> Size</td>
            </tr>
            <tr class="hline">
              <td>
                <hr></td>
              <td>
                <hr></td>
              <td>
                <hr></td>
              <td>
                <hr></td>
            </tr>
            <tr style="vertical-align:baseline;" id="TBL-5-2-">
              <td style="white-space:nowrap; text-align:left;"
                id="TBL-5-2-1" class="td11">Real </td>
              <td style="white-space:nowrap; text-align:center;"
                id="TBL-5-2-2" class="td11"> platform dependant </td>
              <td style="white-space:nowrap; text-align:center;"
                id="TBL-5-2-3" class="td11"> ??? </td>
              <td style="white-space:nowrap; text-align:right;"
                id="TBL-5-2-4" class="td11">4 or 8</td>
            </tr>
            <tr style="vertical-align:baseline;" id="TBL-5-3-">
              <td style="white-space:nowrap; text-align:left;"
                id="TBL-5-3-1" class="td11">Single </td>
              <td style="white-space:nowrap; text-align:center;"
                id="TBL-5-3-2" class="td11"> 1.5E-45 .. 3.4E38 </td>
              <td style="white-space:nowrap; text-align:center;"
                id="TBL-5-3-3" class="td11"> 7-8 </td>
              <td style="white-space:nowrap; text-align:right;"
                id="TBL-5-3-4" class="td11"> 4</td>
            </tr>
            <tr style="vertical-align:baseline;" id="TBL-5-4-">
              <td style="white-space:nowrap; text-align:left;"
                id="TBL-5-4-1" class="td11">Double </td>
              <td style="white-space:nowrap; text-align:center;"
                id="TBL-5-4-2" class="td11"> 5.0E-324 .. 1.7E308 </td>
              <td style="white-space:nowrap; text-align:center;"
                id="TBL-5-4-3" class="td11"> 15-16 </td>
              <td style="white-space:nowrap; text-align:right;"
                id="TBL-5-4-4" class="td11"> 8</td>
            </tr>
            <tr style="vertical-align:baseline;" id="TBL-5-5-">
              <td style="white-space:nowrap; text-align:left;"
                id="TBL-5-5-1" class="td11">Extended</td>
              <td style="white-space:nowrap; text-align:center;"
                id="TBL-5-5-2" class="td11"> 1.9E-4932 .. 1.1E4932 </td>
              <td style="white-space:nowrap; text-align:center;"
                id="TBL-5-5-3" class="td11"> 19-20 </td>
              <td style="white-space:nowrap; text-align:right;"
                id="TBL-5-5-4" class="td11"> 10</td>
            </tr>
            <tr style="vertical-align:baseline;" id="TBL-5-6-">
              <td style="white-space:nowrap; text-align:left;"
                id="TBL-5-6-1" class="td11">Comp </td>
              <td style="white-space:nowrap; text-align:center;"
                id="TBL-5-6-2" class="td11"> -2E64+1 .. 2E63-1 </td>
              <td style="white-space:nowrap; text-align:center;"
                id="TBL-5-6-3" class="td11"> 19-20 </td>
              <td style="white-space:nowrap; text-align:right;"
                id="TBL-5-6-4" class="td11"> 8</td>
            </tr>
            <tr style="vertical-align:baseline;" id="TBL-5-7-">
              <td style="white-space:nowrap; text-align:left;"
                id="TBL-5-7-1" class="td11">Currency</td>
              <td style="white-space:nowrap; text-align:center;"
                id="TBL-5-7-2" class="td11">-922337203685477.5808 ..
                922337203685477.5807</td>
              <td style="white-space:nowrap; text-align:center;"
                id="TBL-5-7-3" class="td11"> 19-20 </td>
              <td style="white-space:nowrap; text-align:right;"
                id="TBL-5-7-4" class="td11"> 8</td>
            </tr>
          </tbody>
        </table>
      </blockquote>
      apparently there also is real46 (never heard of real16)<br>
      <br>
      The size will actually be in the dwarf, so that I got. <br>
      <br>
      But from that how do I know how many bits are in the exponent?
      (and how many in the number). Apparently it depends on the CPU?
      But where to get the info?<br>
    </blockquote>
    For all but Real48 (not Real46 or Real16), those are conformant with
    IEEE 754 (<a class="moz-txt-link-freetext" href="http://grouper.ieee.org/groups/754/">http://grouper.ieee.org/groups/754/</a>)<br>
    <br>
    Real48 is the non-IEEE754 (predating it) floating point format that
    was used in the early Borland Turbo Pascal...<br>
    <br>
    Ralf<br>
  
<br /><br />
<hr style='border:none; color:#909090; background-color:#B0B0B0; height: 1px; width: 99%;' />
<table style='border-collapse:collapse;border:none;'>
        <tr>
                <td style='border:none;padding:0px 15px 0px 8px'>
                        <a href="http://www.avast.com/">
                                <img border=0 src="http://static.avast.com/emails/avast-mail-stamp.png" />
                        </a>
                </td>
                <td>
                        <p style='color:#3d4d5a; font-family:"Calibri","Verdana","Arial","Helvetica"; font-size:12pt;'>
                                This email is free from viruses and malware because <a href="http://www.avast.com/">avast! Antivirus</a> protection is active.
                        </p>
                </td>
        </tr>
</table>
<br />
</body>
</html>