comp.lang.ada
 help / color / mirror / Atom feed
From: Bill Brennan <william.c.brennan@lmco.com>
Subject: Re: Top 10 Language Constructs (Ada)
Date: 2000/07/18
Date: 2000-07-18T14:39:33+00:00	[thread overview]
Message-ID: <39751555.4E40A4A7@lmco.com> (raw)
In-Reply-To: 01HW.B59982450058903A078EC70C@news.pacbell.net

David Kristola wrote:

> The other day, i came across a message field in an interface document
> that i was coding against.  The field is 16 bits, with the high order
> bit being a sign bit, the next highest order bit has the value 2^1,
> the third highest bit is 2^0, and so on down to the low order bit,
> which is 2^(-13).  The note said that the field is 2's complement.
> No problem....
> 
>    type Plasma_Volts_Type is delta 0.00012207 range -4.0 .. 3.99987793;
>    for Plasma_Volts_Type'Size use 16;

Actually, this doesn't compile in GNAT, I presume because it rounds
Plasma_Volts_Type'Last to something which won't fit in 16 bits.

Besides the fact that this type definition isn't portable (for GNAT
anyway), 
it doesn't really reflect what you're trying to say.  Without your
description,
I would have no idea that 0.00012207 ~= 2^(-13) or that 
3.99987793 ~= 4 - 2^(-13).

Personally, I think it's clearer to state it as

   type Plasma_Volts_Type is
      delta  2#000.0_0000_0000_0001#     --  approx 0.00012207
      range -2#100.0_0000_0000_0000# ..  --        -4
             2#011.1_1111_1111_1111#;    --  approx 3.99987793

   for Plasma_Volts_Type'Size use 16;
 
which will compile, and more accurately expresses what is intended.

This ability to express literals fairly transparently using any
numerical
base of convenience is yet another reason to value Ada.  (though I'm not
sure it's important enough to go on my top 10 list.)

-- Bill Brennan




  parent reply	other threads:[~2000-07-18  0:00 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-07-14  0:00 Top 10 Language Constructs (Ada) Bruno Gustavs
2000-07-14  0:00 ` Samuel T. Harris
2000-07-15  0:00   ` Simon Wright
2000-07-18  0:00     ` Nick Keighley
2000-07-14  0:00 ` David Kristola
2000-07-14  0:00 ` Andrew Hately
2000-07-15  0:00 ` David Botton
2000-07-15  0:00 ` Marc A. Criley
2000-07-16  0:00   ` David Botton
2000-07-18  0:00   ` David Kristola
2000-07-18  0:00     ` Stefan Skoglund
2000-07-18  0:00     ` Bill Brennan [this message]
2000-07-18  0:00       ` Dr. Joachim Schr�er
2000-07-19  0:00         ` Bill Brennan
2000-07-18  0:00           ` Scott Ingram`
2000-07-21  0:00         ` Keith Thompson
2000-07-25  0:00           ` Dr. Joachim Schr�er
2000-07-25  0:00             ` Florian Weimer
2000-07-26  0:00             ` David Kristola
2000-07-25  0:00           ` Keith Thompson
2000-07-19  0:00       ` David Kristola
2000-07-18  0:00     ` Scott Ingram`
2000-07-24  0:00   ` Richard Riehle
2000-07-26  0:00     ` The Ada type model (was Re: Top 10 Language Constructs (Ada)) Marc A. Criley
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox