[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Hex constants interpreted differently in IDL/v5.2



David Fanning wrote:
> 
> William Thompson (thompson@orpheus.nascom.nasa.gov) writes:
> 
> > Apparently, IDL/v5.2 interprets some hexadecimal constants differently than
> > previous versions.  For example, the statement
> >
> >       IDL> help,'aa7f'x
> >
> > under IDL/v5.1 produces the result
> >
> >       <Expression>    LONG      =        43647
> >
> > while under IDL/v5.2, the following is returned
> >
> >       <Expression>    INT       =   -21889
> 
> Yep. I think I reported this already. (Or meant to,
> if I didn't.)
> 
> I first noticed it with this kind of syntax:
> 
>    Plot, data, Color='00ffff'x
> 
> This used to draw a yellow plot, but started drawing
> white plots in IDL 5.2. Of course, the previous behavior
> was decidedly a bug (that I had gotten used to, darn it),
> but if you want a 24-bit number, you really do need to
> make it a long:
> 
>    Plot, data, color='00ffff'xL
> 
> I presume the bug was found and fixed when the programmers
> were implementing the unsigned integer data type. :-)
> 
> Cheers,
> 
> David

Why should this be a bug? With '00ffff'x you are specifying 3 bytes,
hence you need at least a long variable. I would think it's OK if this
is interpreted as such. For the cases that William mentions, it i
sarguable whether the correct behaviour should be to produce an unsigned
int instead of a 'normal' int. At least in my experience, hex numbers
are usually meant to be positive. And you could still force it as
fix('f000'x).

Regards,
Martin

-- 

|||||||||||||||\\\\\\\\\\\\\-------------------///////////////|||||||||||||||
Martin Schultz, DEAS, Harvard University, 29 Oxford St., Pierce 109,
Cambridge, MA 02138          phone (617) 496 8318   fax (617) 495 4551
e-mail mgs@io.harvard.edu    web http://www-as/people/staff/mgs/