1. Euphoria equivalent to C typecasting

All,

Dumb question time.  I'm trying to come up with the Euphoria equivalent
of the following code that gets a floating point value from a spot
in memory:

longBuffer = (long *) (dataBuffer + bufferIndex);
sprintf(prtBuffer+bufferCount+columnInfo[colIndex].width-11,
        "%11ld", *longBuffer);

longBuffer is defined as "long * longBuffer;"

Any ideas?

Thanks,

Jonas

new topic     » topic index » view message » categorize

2. Re: Euphoria equivalent to C typecasting

Jonas Temple wrote:
> 
> All,
> 
> Dumb question time.  I'm trying to come up with the Euphoria equivalent
> of the following code that gets a floating point value from a spot
> in memory:
> 
> longBuffer = (long *) (dataBuffer + bufferIndex);
> sprintf(prtBuffer+bufferCount+columnInfo[colIndex].width-11,
>         "%11ld", *longBuffer);
> 
> longBuffer is defined as "long * longBuffer;"
> 
> Any ideas?
> 
> Thanks,
> 
> Jonas
> 
I apologize, I copied the wrong section.  What I'm really interested in
is in extracting the floating point value from the memory location:

floatBuffer = (float *) (dataBuffer + bufferIndex);
sprintf(prtBuffer+bufferCount+columnInfo[colIndex].width-16,
        "%.8E", *floatBuffer);

Thanks,

Jonas

new topic     » goto parent     » topic index » view message » categorize

3. Re: Euphoria equivalent to C typecasting

Jonas Temple wrote:
> 
> > 
> I apologize, I copied the wrong section.  What I'm really interested in
> is in extracting the floating point value from the memory location:
> 
> floatBuffer = (float *) (dataBuffer + bufferIndex);
> sprintf(prtBuffer+bufferCount+columnInfo[colIndex].width-16,
>         "%.8E", *floatBuffer);
> 

This is just a 32-bit floating point number, so you could convert using:

float = float32_to_atom( peek( { dataBuffer + bufferIndex, 4}))
-- C writes the output of sprintf to a buffer, but
-- we just stick it in a sequence in Euphoria:
text  = sprintf( "%0.8e", float )


Matt Lewis

new topic     » goto parent     » topic index » view message » categorize

4. Re: Euphoria equivalent to C typecasting

Matt Lewis wrote:
> 
> This is just a 32-bit floating point number, so you could convert using:
> 
> <font color="#330033"></font>
> <font color="#330033">float = float32_to_atom( </font><font
> color="#FF00FF">peek</font><font color="#993333">( </font><font color="#0000FF">{
> </font><font color="#330033">dataBuffer + bufferIndex, 4</font><font
> color="#0000FF">}</font><font color="#993333">)</font><font
> color="#330033">)</font>
> <font color="#FF0055">-- C writes the output of sprintf to a buffer,
> but</font>
> <font color="#FF0055">-- we just stick it in a sequence in Euphoria:</font>
> <font color="#330033">text  = </font><font color="#FF00FF">sprintf</font><font
> color="#330033">( </font><font color="#00A033">"%0.8e"</font><font
> color="#330033">, float )</font>
> <font color="#330033"></font>
> 
> Matt Lewis
> 
Thanks Matt!  That did the trick.

Jonas

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu