comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: understanding 'fix' command!
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: understanding 'fix' command! [message #59828 is a reply to message #59823] Fri, 18 April 2008 09:32 Go to previous message
Foldy Lajos is currently offline  Foldy Lajos
Messages: 268
Registered: October 2001
Senior Member
On Fri, 18 Apr 2008, vino wrote:

> Hi!
> I was trying out the 'FIX' command and i couldnt understand all the
> arguments present. Can someone help me please? below is whats i did!
> IDL> c=[1.2,-3.4,5.]
> IDL> print,fix(c)
> 1 -3 5

You have converted a float array to int.

FIX converts to IDL int, which is 16 bits wide, is signed and its range is
-32768 <= int <= 32767. I assume you know how numbers are represented in
computers. (The following is valid on little-endian machines only.)

Your float array occupies 12 bytes in memory, namely:

154 153 153 63 154 153 89 192 0 0 160 64 (in decimal)


> IDL> print,fix(c,0)
> -26214

reads memory as int from offset 0: the two bytes 154, 153 give -26214
(154+256*153 = 39322 = 65536-26214 = -26214)

> IDL> print,fix(c,1)
> -26215

reads memory as int from offset 1: the two bytes 153, 153 give -26215
(153+256*153 = 39321 = 65536-26215 = -26215)

> IDL> print,fix(c,2)
> 16281

reads memory as int from offset 2: the two bytes 153, 63 give 16281
(153+256*63 = 16281)

> IDL> print,fix(c,0,1)
> -26214

same as first, reads 1 int (from offset 0)

> IDL> print,fix(c,0,2)
> -26214 16281
>

same as first and third, reads 2 ints (from offset 0 and 2)

regards,
lajos
[Message index]
 
Read Message
Read Message
Previous Topic: Re: GZIP (using Ronn Kling's idl_tools)?
Next Topic: Re: Pleasant Workbench Surprise

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Wed Oct 29 15:50:04 PDT 2025

Total time taken to generate the page: 0.03999 seconds