DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   C# (http://www.daniweb.com/forums/forum61.html)
-   -   Big Endian float conversion (http://www.daniweb.com/forums/thread87725.html)

piote Aug 26th, 2007 5:57 pm
Big Endian float conversion
 
Hi,
I am trying to convert a Big Endian data file to something readable on most Windows PCs. I do ok with integer data but I cannot convert the floating points (32-bit IEEE).
1) Is it possible for a BinaryReader to account for Big Endian, such that .ReadSingle() would return the correct value?

2) If I have to read the bytes one at a time and reverse them, is there a way to type cast it to a float?

I pursued #2 for a while, but C# type-casting seems to convert the actual value and not the binary that represents it. So the result is something like 1.12E9 instead of 89.9.
I really don't know how to make it work correctly. I would be grateful for any help.

Regards,
Piote

Hamrick Aug 26th, 2007 7:52 pm
Re: Big Endian float conversion
 
1) Yeah, you can tell the BinaryReader what encoding to use with the System.Text.Encoding class.
BinaryReader reader = new BinaryReader( stream, Encoding.BigEndianUnicode );
2) No, but you can use the System.BitConverter class to turn an array of bytes into whatever type it supports. And it supports both single and double precision floating point conversions. :)

piote Aug 28th, 2007 8:27 am
Re: Big Endian float conversion
 
Thanks for your help!

Regards,
Piote

sidharthrshah May 13th, 2008 2:54 am
Re: Big Endian float conversion
 
And how do I convert it the other way round.

Regards,
Sidharth Shah.


All times are GMT -4. The time now is 9:36 am.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC