Re: EndianU32_NtoB
Re: EndianU32_NtoB
- Subject: Re: EndianU32_NtoB
- From: "Adam R. Maxwell" <email@hidden>
- Date: Fri, 30 Oct 2009 19:52:56 -0400
On Oct 30, 2009, at 1:46 PM, Jens Alfke wrote:
> On Oct 30, 2009, at 10:31 AM, Sean McBride wrote:
>
>> I don't get why for ints they have host<->big, host<->little,
>> etc. for the floats they don't. Instead they have those weird host<-
>>>
>> swapped. And though they take floats, they return structs.
>
> I think this is to avoid storing swapped floats in 'float' variables. A swapped int is a valid int, but a swapped float is often an invalid IEEE floating-point value. My suspicion is that the CPU might mistreat such values when they're read into FP registers, even if no arithmetic is done on them in that state. (But that's just a suspicion; anyone know the gory details?)
This old thread seems to confirm your suspicion:
http://www.omnigroup.com/mailman/archive/macosx-dev/2002-October/042692.html
...and IIRC this message was particularly useful in demonstrating how to use NSSwappedFloat:
http://www.omnigroup.com/mailman/archive/macosx-dev/2002-October/042705.html
Attachment:
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden