Byte Order Swapping Function
Andrew Wiley
wiley.andrew.j at gmail.com
Thu Jul 14 10:26:46 PDT 2011
On Thu, Jul 14, 2011 at 9:02 AM, Jonathan M Davis <jmdavisProg at gmx.com>wrote:
> On Thursday 14 July 2011 06:27:47 Andrei Alexandrescu wrote:
> > On 7/14/11 5:51 AM, Regan Heath wrote:
> > > That's my point. I need 8/16/32/64/128 bit versions and it really would
> > > be better if there were general variants. My version are less than
> > > optimal, but do use intrinsics where possible. Someone else can do a
> far
> > > better job than I, and it really should be done once, by that person.
> > > Surely we have the infrastructure for someone to add this to phobos? If
> > > something this simple can't or won't be done, what hope do we have!?
> >
> > I think we should have these functions in std.bitmanip:
> >
> > T toBigEndian(T)(T val) if (isArithmetic!T || isSomeChar!T);
> > T toLittleEndian(T)(T val) if (isArithmetic!T || isSomeChar!T);
> > T bigEndianToNative(T)(T val) if (isArithmetic!T || isSomeChar!T);
> > T littleEndianToNative(T)(T val) if (isArithmetic!T || isSomeChar!T);
> >
> > That means all characters, all integers, and all floating point numbers.
> > The implementations would opportunistically use intrinsics and other
> > specialized means.
>
> Well, it's questionable as to whether there's any point in having such
> functions for 8-bit values, since it would just return the original value.
> And
> I don't think that it should deal with floating point numbers, since
> they're
> not affected by endian-ness.
>
I looked this up at one point, and found that (according to Wikipedia, which
may not be perfect) floating point numbers are generally stored according to
the same endianness rules as integers, in which case they would be affected.
I'm not an expert, but why do you think they aren't?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20110714/290a3ddc/attachment.html>
More information about the Digitalmars-d
mailing list