Lunatik

byteorderModule

Converts integers between host, big-endian (network) and little-endian byte order, typically around the data accessors, which read and write in host order.

An input is truncated to the function’s width.

Usage

local byteorder = require("byteorder")
local data      = require("data")

local d = data.new(2)
d:setuint16(0, byteorder.hton16(5353))  -- stored big-endian
print(byteorder.ntoh16(d:getuint16(0)))  -- 5353

Functions

be16toh (num) Converts a 16-bit integer from big-endian byte order to host byte order.
be32toh (num) Converts a 32-bit integer from big-endian byte order to host byte order.
be64toh (num) Converts a 64-bit integer from big-endian byte order to host byte order.
htobe16 (num) Converts a 16-bit integer from host byte order to big-endian byte order.
htobe32 (num) Converts a 32-bit integer from host byte order to big-endian byte order.
htobe64 (num) Converts a 64-bit integer from host byte order to big-endian byte order.
htole16 (num) Converts a 16-bit integer from host byte order to little-endian byte order.
htole32 (num) Converts a 32-bit integer from host byte order to little-endian byte order.
htole64 (num) Converts a 64-bit integer from host byte order to little-endian byte order.
hton16 (num) Converts a 16-bit integer from host byte order to network (big-endian) byte order.
hton32 (num) Converts a 32-bit integer from host byte order to network (big-endian) byte order.
hton64 (num) Converts a 64-bit integer from host byte order to network (big-endian) byte order.
le16toh (num) Converts a 16-bit integer from little-endian byte order to host byte order.
le32toh (num) Converts a 32-bit integer from little-endian byte order to host byte order.
le64toh (num) Converts a 64-bit integer from little-endian byte order to host byte order.
ntoh16 (num) Converts a 16-bit integer from network (big-endian) byte order to host byte order.
ntoh32 (num) Converts a 32-bit integer from network (big-endian) byte order to host byte order.
ntoh64 (num) Converts a 64-bit integer from network (big-endian) byte order to host byte order.

Functions in detail

be16toh (num)
Converts a 16-bit integer from big-endian byte order to host byte order.

Parameters

  • num integer 16-bit integer in big-endian byte order.

Returns

    integer value in host byte order.
be32toh (num)
Converts a 32-bit integer from big-endian byte order to host byte order.

Parameters

  • num integer 32-bit integer in big-endian byte order.

Returns

    integer value in host byte order.
be64toh (num)
Converts a 64-bit integer from big-endian byte order to host byte order.

Parameters

  • num integer 64-bit integer in big-endian byte order.

Returns

    integer value in host byte order.
htobe16 (num)
Converts a 16-bit integer from host byte order to big-endian byte order.

Parameters

  • num integer 16-bit integer in host byte order.

Returns

    integer value in big-endian byte order.
htobe32 (num)
Converts a 32-bit integer from host byte order to big-endian byte order.

Parameters

  • num integer 32-bit integer in host byte order.

Returns

    integer value in big-endian byte order.
htobe64 (num)
Converts a 64-bit integer from host byte order to big-endian byte order.

Parameters

  • num integer 64-bit integer in host byte order.

Returns

    integer value in big-endian byte order.
htole16 (num)
Converts a 16-bit integer from host byte order to little-endian byte order.

Parameters

  • num integer 16-bit integer in host byte order.

Returns

    integer value in little-endian byte order.
htole32 (num)
Converts a 32-bit integer from host byte order to little-endian byte order.

Parameters

  • num integer 32-bit integer in host byte order.

Returns

    integer value in little-endian byte order.
htole64 (num)
Converts a 64-bit integer from host byte order to little-endian byte order.

Parameters

  • num integer 64-bit integer in host byte order.

Returns

    integer value in little-endian byte order.
hton16 (num)
Converts a 16-bit integer from host byte order to network (big-endian) byte order.

Parameters

  • num integer 16-bit integer in host byte order.

Returns

    integer value in network byte order.
hton32 (num)
Converts a 32-bit integer from host byte order to network (big-endian) byte order.

Parameters

  • num integer 32-bit integer in host byte order.

Returns

    integer value in network byte order.
hton64 (num)
Converts a 64-bit integer from host byte order to network (big-endian) byte order.

Parameters

  • num integer 64-bit integer in host byte order.

Returns

    integer value in network byte order.
le16toh (num)
Converts a 16-bit integer from little-endian byte order to host byte order.

Parameters

  • num integer 16-bit integer in little-endian byte order.

Returns

    integer value in host byte order.
le32toh (num)
Converts a 32-bit integer from little-endian byte order to host byte order.

Parameters

  • num integer 32-bit integer in little-endian byte order.

Returns

    integer value in host byte order.
le64toh (num)
Converts a 64-bit integer from little-endian byte order to host byte order.

Parameters

  • num integer 64-bit integer in little-endian byte order.

Returns

    integer value in host byte order.
ntoh16 (num)
Converts a 16-bit integer from network (big-endian) byte order to host byte order.

Parameters

  • num integer 16-bit integer in network byte order.

Returns

    integer value in host byte order.
ntoh32 (num)
Converts a 32-bit integer from network (big-endian) byte order to host byte order.

Parameters

  • num integer 32-bit integer in network byte order.

Returns

    integer value in host byte order.
ntoh64 (num)
Converts a 64-bit integer from network (big-endian) byte order to host byte order.

Parameters

  • num integer 64-bit integer in network byte order.

Returns

    integer value in host byte order.