On Thu, Aug 2, 2012 at 10:13 AM, Charles Henry <czhenry(a)gmail.com> wrote:
On Thu, Aug 2, 2012 at 7:39 AM, Martin
Homuth-Rosemann
<linuxaudio(a)cryptomys.de> wrote:
{
// define an aliasing type to perform a "reinterpret cast"
typedef __u32 __attribute__ (( __may_alias__ )) u32bit;
if ( *( (u32bit*)&f ) & 0x7F000000 ) // E > 1 : normal.
Is there a 64-bit version of the same? This appears to work with a
32-bit unsigned int as a pointer, meaning that it's applicable to
32-bits. How does a "reinterpret cast" work?
Wait... I'll answer that one myself. It's applicable to 64-bits. The
u32bit* is whatever size the address space is. So, it doesn't matter.
The reinterpret cast is making this 32-bit float into a 32-bit integer
directly without numerical conversion.