Hi David,

Thanks very much for your code, I will try it when I get home at the end of the week although I only have little endian Intell chips. I will have to look around for others. Btw, are there still chips storing big endian paired in two bytes? So your example number would become 0x23, 0x01, 0x67, 0x45 ?

Thanks again,
Marcel



On April 11, 2016 9:45:13 PM David Warring <david.warr...@gmail.com> wrote:

Hi Marcel,
With regard to checking for endianess. I don't think there's anything built
in NativeCall that directly determines this, but hopefuly the following
should do it, without resorting to a C compiler.

use NativeCall;
sub little-endian returns Bool {
    my $i = CArray[uint32].new: 0x01234567;
    my $j = nativecast(CArray[uint8], $i);
    say sprintf("j[0]:%x j[3]:%x", $j[0], $j[3]);
    $j[0] == 0x67;
}

say "little-endian:" ~ little-endian;

I've only tested this on a little endian architecture.

Source: I ported the 'C' answer to this SO question:
http://stackoverflow.com/questions/12791864/c-program-to-check-little-vs-big-endian



On Tue, Apr 12, 2016 at 6:30 AM, Marcel Timmerman <mt1...@gmail.com> wrote:

Hi

Thanks for your answer. I was thinking in perl6, I should have been more
explicit. At the moment I am converting Num to a float representation in
my
BSON module and was wondering if there where easier ways and maybe faster
too.

Regards,
Marcel






--- Forwarded message ---
From: Marcel Timmerman <mt1...@gmail.com>
Date: April 11, 2016 8:28:22 PM
Subject: Re: Union
To: Parrot Raiser <1parr...@gmail.com>

Hi
Thanks for your answer. I was thinking in perl6, I should have been more
explicit. At the moment I am converting Num to a float representation in my
BSON module and was wondering if there where easier ways and maybe faster
too.

Regards,
Marcel





Reply via email to