Byte Order

Platform byte order.

Usage

var BYTE_ORDER = require( '@stdlib/os/byte-order' );

BYTE_ORDER

Platform byte order.

console.log( BYTE_ORDER );
// => <string>

Notes

  • The following values are possible:

    • 'little-endian'
    • 'big-endian'
    • 'mixed-endian' (also known as "middle-endian")
    • 'unknown'

Examples

var BYTE_ORDER = require( '@stdlib/os/byte-order' );

if ( BYTE_ORDER === 'little-endian' ) {
    console.log( 'Least significant byte comes first...' );
} else if ( BYTE_ORDER === 'big-endian' ) {
    console.log( 'Most significant byte comes first...' );
} else {
    console.log( 'This is uncommon...' );
}

C APIs

Usage

#include "stdlib/os/byte_order.h"

STDLIB_OS_ORDER_LITTLE_ENDIAN

Macro for an arbitrary constant indicating little-endian order.

#if defined(STDLIB_OS_BYTE_ORDER) && STDLIB_OS_BYTE_ORDER == STDLIB_OS_ORDER_LITTLE_ENDIAN

// Do something for little-endian...

#endif

If compiled on an unrecognized/unsupported platform, the macro is not defined.

STDLIB_OS_ORDER_BIG_ENDIAN

Macro for an arbitrary constant indicating big-endian order.

#if defined(STDLIB_OS_BYTE_ORDER) && STDLIB_OS_BYTE_ORDER == STDLIB_OS_ORDER_BIG_ENDIAN

// Do something for big-endian...

#endif

If compiled on an unrecognized/unsupported platform, the macro is not defined.

STDLIB_OS_BYTE_ORDER

Macro which equals either STDLIB_OS_ORDER_LITTLE_ENDIAN or STDLIB_OS_ORDER_BIG_ENDIAN (or host defined) depending on the resolved platform byte order.

#if defined(STDLIB_OS_BYTE_ORDER)

#if STDLIB_OS_BYTE_ORDER == STDLIB_OS_ORDER_LITTLE_ENDIAN

// Do something for little-endian...

#elif STDLIB_OS_BYTE_ORDER == STDLIB_OS_ORDER_BIG_ENDIAN

// Do something for big-endian...

#endif

#endif

If compiled on an unrecognized/unsupported platform, the macro is not defined.

Examples

#include "stdlib/os/byte_order.h"
#include <stdio.h>

int main() {
#if defined(STDLIB_OS_BYTE_ORDER)
#if STDLIB_OS_BYTE_ORDER == STDLIB_OS_ORDER_LITTLE_ENDIAN
    printf( "Platform is little-endian...\n" );
#elif STDLIB_OS_BYTE_ORDER == STDLIB_OS_ORDER_BIG_ENDIAN
    printf( "Platform is big-endian...\n" );
#else
    printf( "Platform endianness is either mixed-endian or unknown...\n" )
#endif
#endif
}

CLI

Usage

Usage: byte-order [options]

Options:

  -h,    --help                Print this message.
  -V,    --version             Print the package version.

Examples

$ byte-order