[squeak-dev] Floats

Alan Pinch alan.c.pinch at gmail.com
Thu Oct 12 09:36:03 UTC 2017


The same issue exists in ASN1 support, none for float type tag 9. I 
would love to add this support but I am unsure how to breakdown a float 
into mantissa, base and exponent. Here is a description of how ASN1 
formats a REAL into the stream of bytes:

    Type REAL takes values that are the machine representation of a real
    number, namely the triplet (m, b, e), where m is the mantissa (a
    signed number), b the base (2 or 10), and e the exponent (a signed
    number). For example, the representation of the value 3.14 for the
    variable Pi, declared as Pi ::= REAL, can be (314, 10, -2). Three
    special values, PLUS-INFINITY, 0, and MINUS-INFINITY, are also allowed.

Here are some sample values:

      * 09 00 = 0 (zero)
      * 09 01 40 = +INF (infinity)
      * 09 01 41 = -INF
      * 09 08 03 2b 31 2e 30 65 2b 30 = "+1.0e+0" = 1.0 (exact decimal)
      * 09 05 80 fe 55 55 55 = 1398101.25 (binary, 0x555555 * 2^-2)
      * 09 06 83 00 fc 00 00 01 = 0.0625 (binary, 0x000001 * 2^-4)

I have not parsed out these samples into these components so it's greek.

Alan

On 10/11/2017 02:18 PM, Bert Freudenberg wrote:
> On Wed, Oct 11, 2017 at 8:07 PM, Tobias Pape <Das.Linux at gmx.de 
> <mailto:Das.Linux at gmx.de>>wrote:
>
>
>     > On 11.10.2017, at 19:59, Bert Freudenberg <bert at freudenbergs.de
>     <mailto:bert at freudenbergs.de>> wrote:
>     >
>     > On Wed, Oct 11, 2017 at 5:24 PM, Tobias Pape <Das.Linux at gmx.de
>     <mailto:Das.Linux at gmx.de>> wrote:
>     > Hi all
>     >
>     > I'm a bit stumped…
>     >
>     > What is our canonical way to put a Float onto a (binary) stream?
>     > To be precise a IEEE754 double precision 64-bit float onto a
>     stream, of which I only know that it is a binary one.
>     >
>     > I found ByteArray>>doubleAt:{put:}bigEndian:, but they have
>     neither senders nor test _and_ it is not a stream.
>     >
>     > What do y'all use?
>     >
>     > You write them as two words, like e.g. in DataStream>>writeFloat:.
>
>     Quite. yes.
>
>     But I find it strange that our read/write streams support various
>     integer and string reading/writing helpers, but none for floats…
>
>     Best regards
>             -Tobias
>
>
> ​I guess file formats using integers and strings are way more common 
> than ones storing binary floats.
>
> - Bert -​
>
>

-- 
Thank you for your consideration,
Alan

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20171012/8cd68dee/attachment.html>


More information about the Squeak-dev mailing list