libclod
C library for interacting with NBTs, region files, LOD data and other things.
Loading...
Searching...
No Matches
big_endian.h File Reference

Methods for big-endian encoding numbers. More...

#include <clod/lib.h>
#include <limits.h>
#include <stdint.h>

Go to the source code of this file.

Macros

#define BEU8_MAX   UINT8_C(0xFF)
 Maximum 8-bit unsigned value.
#define BEU16_MAX   UINT16_C(0xFFFF)
 Maximum 16-bit unsigned value.
#define BEU24_MAX   UINT32_C(0xFFFFFF)
 Maximum 24-bit unsigned value.
#define BEU32_MAX   UINT32_C(0xFFFFFFFF)
 Maximum 32-bit unsigned value.
#define BEU40_MAX   UINT64_C(0xFFFFFFFFFF)
 Maximum 40-bit unsigned value.
#define BEU48_MAX   UINT64_C(0xFFFFFFFFFFFF)
 Maximum 48-bit unsigned value.
#define BEU56_MAX   UINT64_C(0xFFFFFFFFFFFFFF)
 Maximum 56-bit unsigned value.
#define BEU64_MAX   UINT64_C(0xFFFFFFFFFFFFFFFF)
 Maximum 64-bit unsigned value.
#define BEI8_MIN   INT8_C(-0x80)
 Minimum 8-bit signed value.
#define BEI16_MIN   INT16_C(-0x8000)
 Minimum 16-bit signed value.
#define BEI24_MIN   INT32_C(-0x800000)
 Minimum 24-bit signed value.
#define BEI32_MIN   INT32_C(-0x80000000)
 Minimum 32-bit signed value.
#define BEI40_MIN   INT64_C(-0x8000000000)
 Minimum 40-bit signed value.
#define BEI48_MIN   INT64_C(-0x800000000000)
 Minimum 48-bit signed value.
#define BEI56_MIN   INT64_C(-0x80000000000000)
 Minimum 56-bit signed value.
#define BEI64_MIN   INT64_C(-0x8000000000000000)
 Minimum 64-bit signed value.
#define BEI8_MAX   INT8_C(0x7F)
 Maximum 8-bit signed value.
#define BEI16_MAX   INT16_C(0x7FFF)
 Maximum 16-bit signed value.
#define BEI24_MAX   INT32_C(0x7FFFFF)
 Maximum 24-bit signed value.
#define BEI32_MAX   INT32_C(0x7FFFFFFF)
 Maximum 32-bit signed value.
#define BEI40_MAX   INT64_C(0x7FFFFFFFFF)
 Maximum 40-bit signed value.
#define BEI48_MAX   INT64_C(0x7FFFFFFFFFFF)
 Maximum 48-bit signed value.
#define BEI56_MAX   INT64_C(0x7FFFFFFFFFFFFF)
 Maximum 56-bit signed value.
#define BEI64_MAX   INT64_C(0x7FFFFFFFFFFFFFFF)
 Maximum 64-bit signed value.

Functions

static void beu8_enc (char ptr[1], const uint8_t val)
 Encode a 8-bit unsigned integer into big-endian format.
static void beu16_enc (char ptr[2], const uint16_t val)
 Encode a 16-bit unsigned integer into big-endian format.
static void beu24_enc (char ptr[3], const uint32_t val)
 Encode a 24-bit unsigned integer into big-endian format.
static void beu32_enc (char ptr[4], const uint32_t val)
 Encode a 32-bit unsigned integer into big-endian format.
static void beu40_enc (char ptr[5], const uint64_t val)
 Encode a 40-bit unsigned integer into big-endian format.
static void beu48_enc (char ptr[6], const uint64_t val)
 Encode a 48-bit unsigned integer into big-endian format.
static void beu56_enc (char ptr[7], const uint64_t val)
 Encode a 56-bit unsigned integer into big-endian format.
static void beu64_enc (char ptr[8], const uint64_t val)
 Encode a 64-bit unsigned integer into big-endian format.
static uint8_t beu8_dec (const char ptr[1])
 Decode an 8-bit unsigned integer in big-endian format.
static uint16_t beu16_dec (const char ptr[2])
 Decode a 16-bit unsigned integer in big-endian format.
static uint32_t beu24_dec (const char ptr[3])
 Decode a 24-bit unsigned integer in big-endian format.
static uint32_t beu32_dec (const char ptr[4])
 Decode a 32-bit unsigned integer in big-endian format.
static uint64_t beu40_dec (const char ptr[5])
 Decode a 40-bit unsigned integer in big-endian format.
static uint64_t beu48_dec (const char ptr[6])
 Decode a 48-bit unsigned integer in big-endian format.
static uint64_t beu56_dec (const char ptr[7])
 Decode a 56-bit unsigned integer in big-endian format.
static uint64_t beu64_dec (const char ptr[8])
 Decode a 64-bit unsigned integer in big-endian format.
static void bei8_enc (char ptr[1], const int8_t val)
 Encode an 8-bit signed integer into big-endian format.
static void bei16_enc (char ptr[2], const int16_t val)
 Encode a 16-bit signed integer into big-endian format.
static void bei24_enc (char ptr[3], const int32_t val)
 Encode a 24-bit signed integer into big-endian format.
static void bei32_enc (char ptr[4], const int32_t val)
 Encode a 32-bit signed integer into big-endian format.
static void bei40_enc (char ptr[5], const int64_t val)
 Encode a 40-bit signed integer into big-endian format.
static void bei48_enc (char ptr[6], const int64_t val)
 Encode a 48-bit signed integer into big-endian format.
static void bei56_enc (char ptr[7], const int64_t val)
 Encode a 56-bit signed integer into big-endian format.
static void bei64_enc (char ptr[8], const int64_t val)
 Encode a 64-bit signed integer into big-endian format.
static int8_t bei8_dec (const char ptr[1])
 Decode an 8-bit signed integer in big-endian format.
static int16_t bei16_dec (const char ptr[2])
 Decode a 16-bit signed integer in big-endian format.
static int32_t bei24_dec (const char ptr[3])
 Decode a 24-bit signed integer in big-endian format.
static int32_t bei32_dec (const char ptr[4])
 Decode a 32-bit signed integer in big-endian format.
static int64_t bei40_dec (const char ptr[5])
 Decode a 40-bit signed integer in big-endian format.
static int64_t bei48_dec (const char ptr[6])
 Decode a 48-bit signed integer in big-endian format.
static int64_t bei56_dec (const char ptr[7])
 Decode a 56-bit signed integer in big-endian format.
static int64_t bei64_dec (const char ptr[8])
 Decode a 64-bit signed integer in big-endian format.
static void bef32_enc (char ptr[4], const float f)
 Encode a float in big-endian format.
static void bef64_enc (char ptr[8], const double f)
 Encode a double in big-endian format.
static float bef32_dec (const char ptr[4])
 Decode a float in big_endian format.
static double bef64_dec (const char ptr[8])
 Decode a double in big_endian format.

Detailed Description

Methods for big-endian encoding numbers.

Definition in file big_endian.h.

Macro Definition Documentation

◆ BEU8_MAX

#define BEU8_MAX   UINT8_C(0xFF)

Maximum 8-bit unsigned value.

Definition at line 19 of file big_endian.h.

◆ BEU16_MAX

#define BEU16_MAX   UINT16_C(0xFFFF)

Maximum 16-bit unsigned value.

Definition at line 21 of file big_endian.h.

◆ BEU24_MAX

#define BEU24_MAX   UINT32_C(0xFFFFFF)

Maximum 24-bit unsigned value.

Definition at line 23 of file big_endian.h.

◆ BEU32_MAX

#define BEU32_MAX   UINT32_C(0xFFFFFFFF)

Maximum 32-bit unsigned value.

Definition at line 25 of file big_endian.h.

◆ BEU40_MAX

#define BEU40_MAX   UINT64_C(0xFFFFFFFFFF)

Maximum 40-bit unsigned value.

Definition at line 27 of file big_endian.h.

◆ BEU48_MAX

#define BEU48_MAX   UINT64_C(0xFFFFFFFFFFFF)

Maximum 48-bit unsigned value.

Definition at line 29 of file big_endian.h.

◆ BEU56_MAX

#define BEU56_MAX   UINT64_C(0xFFFFFFFFFFFFFF)

Maximum 56-bit unsigned value.

Definition at line 31 of file big_endian.h.

◆ BEU64_MAX

#define BEU64_MAX   UINT64_C(0xFFFFFFFFFFFFFFFF)

Maximum 64-bit unsigned value.

Definition at line 33 of file big_endian.h.

◆ BEI8_MIN

#define BEI8_MIN   INT8_C(-0x80)

Minimum 8-bit signed value.

Definition at line 70 of file big_endian.h.

◆ BEI16_MIN

#define BEI16_MIN   INT16_C(-0x8000)

Minimum 16-bit signed value.

Definition at line 72 of file big_endian.h.

◆ BEI24_MIN

#define BEI24_MIN   INT32_C(-0x800000)

Minimum 24-bit signed value.

Definition at line 74 of file big_endian.h.

◆ BEI32_MIN

#define BEI32_MIN   INT32_C(-0x80000000)

Minimum 32-bit signed value.

Definition at line 76 of file big_endian.h.

◆ BEI40_MIN

#define BEI40_MIN   INT64_C(-0x8000000000)

Minimum 40-bit signed value.

Definition at line 78 of file big_endian.h.

◆ BEI48_MIN

#define BEI48_MIN   INT64_C(-0x800000000000)

Minimum 48-bit signed value.

Definition at line 80 of file big_endian.h.

◆ BEI56_MIN

#define BEI56_MIN   INT64_C(-0x80000000000000)

Minimum 56-bit signed value.

Definition at line 82 of file big_endian.h.

◆ BEI64_MIN

#define BEI64_MIN   INT64_C(-0x8000000000000000)

Minimum 64-bit signed value.

Definition at line 84 of file big_endian.h.

◆ BEI8_MAX

#define BEI8_MAX   INT8_C(0x7F)

Maximum 8-bit signed value.

Definition at line 87 of file big_endian.h.

◆ BEI16_MAX

#define BEI16_MAX   INT16_C(0x7FFF)

Maximum 16-bit signed value.

Definition at line 89 of file big_endian.h.

◆ BEI24_MAX

#define BEI24_MAX   INT32_C(0x7FFFFF)

Maximum 24-bit signed value.

Definition at line 91 of file big_endian.h.

◆ BEI32_MAX

#define BEI32_MAX   INT32_C(0x7FFFFFFF)

Maximum 32-bit signed value.

Definition at line 93 of file big_endian.h.

◆ BEI40_MAX

#define BEI40_MAX   INT64_C(0x7FFFFFFFFF)

Maximum 40-bit signed value.

Definition at line 95 of file big_endian.h.

◆ BEI48_MAX

#define BEI48_MAX   INT64_C(0x7FFFFFFFFFFF)

Maximum 48-bit signed value.

Definition at line 97 of file big_endian.h.

◆ BEI56_MAX

#define BEI56_MAX   INT64_C(0x7FFFFFFFFFFFFF)

Maximum 56-bit signed value.

Definition at line 99 of file big_endian.h.

◆ BEI64_MAX

#define BEI64_MAX   INT64_C(0x7FFFFFFFFFFFFFFF)

Maximum 64-bit signed value.

Definition at line 101 of file big_endian.h.

Function Documentation

◆ beu8_enc()

void beu8_enc ( char ptr[1],
const uint8_t val )
inlinestatic

Encode a 8-bit unsigned integer into big-endian format.

Definition at line 36 of file big_endian.h.

◆ beu16_enc()

void beu16_enc ( char ptr[2],
const uint16_t val )
inlinestatic

Encode a 16-bit unsigned integer into big-endian format.

Definition at line 38 of file big_endian.h.

◆ beu24_enc()

void beu24_enc ( char ptr[3],
const uint32_t val )
inlinestatic

Encode a 24-bit unsigned integer into big-endian format.

Definition at line 40 of file big_endian.h.

◆ beu32_enc()

void beu32_enc ( char ptr[4],
const uint32_t val )
inlinestatic

Encode a 32-bit unsigned integer into big-endian format.

Definition at line 42 of file big_endian.h.

◆ beu40_enc()

void beu40_enc ( char ptr[5],
const uint64_t val )
inlinestatic

Encode a 40-bit unsigned integer into big-endian format.

Definition at line 44 of file big_endian.h.

◆ beu48_enc()

void beu48_enc ( char ptr[6],
const uint64_t val )
inlinestatic

Encode a 48-bit unsigned integer into big-endian format.

Definition at line 46 of file big_endian.h.

◆ beu56_enc()

void beu56_enc ( char ptr[7],
const uint64_t val )
inlinestatic

Encode a 56-bit unsigned integer into big-endian format.

Definition at line 48 of file big_endian.h.

◆ beu64_enc()

void beu64_enc ( char ptr[8],
const uint64_t val )
inlinestatic

Encode a 64-bit unsigned integer into big-endian format.

Definition at line 50 of file big_endian.h.

◆ beu8_dec()

uint8_t beu8_dec ( const char ptr[1])
inlinestatic

Decode an 8-bit unsigned integer in big-endian format.

Definition at line 53 of file big_endian.h.

◆ beu16_dec()

uint16_t beu16_dec ( const char ptr[2])
inlinestatic

Decode a 16-bit unsigned integer in big-endian format.

Definition at line 55 of file big_endian.h.

◆ beu24_dec()

uint32_t beu24_dec ( const char ptr[3])
inlinestatic

Decode a 24-bit unsigned integer in big-endian format.

Definition at line 57 of file big_endian.h.

◆ beu32_dec()

uint32_t beu32_dec ( const char ptr[4])
inlinestatic

Decode a 32-bit unsigned integer in big-endian format.

Definition at line 59 of file big_endian.h.

◆ beu40_dec()

uint64_t beu40_dec ( const char ptr[5])
inlinestatic

Decode a 40-bit unsigned integer in big-endian format.

Definition at line 61 of file big_endian.h.

◆ beu48_dec()

uint64_t beu48_dec ( const char ptr[6])
inlinestatic

Decode a 48-bit unsigned integer in big-endian format.

Definition at line 63 of file big_endian.h.

◆ beu56_dec()

uint64_t beu56_dec ( const char ptr[7])
inlinestatic

Decode a 56-bit unsigned integer in big-endian format.

Definition at line 65 of file big_endian.h.

◆ beu64_dec()

uint64_t beu64_dec ( const char ptr[8])
inlinestatic

Decode a 64-bit unsigned integer in big-endian format.

Definition at line 67 of file big_endian.h.

◆ bei8_enc()

void bei8_enc ( char ptr[1],
const int8_t val )
inlinestatic

Encode an 8-bit signed integer into big-endian format.

Definition at line 104 of file big_endian.h.

◆ bei16_enc()

void bei16_enc ( char ptr[2],
const int16_t val )
inlinestatic

Encode a 16-bit signed integer into big-endian format.

Definition at line 106 of file big_endian.h.

◆ bei24_enc()

void bei24_enc ( char ptr[3],
const int32_t val )
inlinestatic

Encode a 24-bit signed integer into big-endian format.

Definition at line 108 of file big_endian.h.

◆ bei32_enc()

void bei32_enc ( char ptr[4],
const int32_t val )
inlinestatic

Encode a 32-bit signed integer into big-endian format.

Definition at line 110 of file big_endian.h.

◆ bei40_enc()

void bei40_enc ( char ptr[5],
const int64_t val )
inlinestatic

Encode a 40-bit signed integer into big-endian format.

Definition at line 112 of file big_endian.h.

◆ bei48_enc()

void bei48_enc ( char ptr[6],
const int64_t val )
inlinestatic

Encode a 48-bit signed integer into big-endian format.

Definition at line 114 of file big_endian.h.

◆ bei56_enc()

void bei56_enc ( char ptr[7],
const int64_t val )
inlinestatic

Encode a 56-bit signed integer into big-endian format.

Definition at line 116 of file big_endian.h.

◆ bei64_enc()

void bei64_enc ( char ptr[8],
const int64_t val )
inlinestatic

Encode a 64-bit signed integer into big-endian format.

Definition at line 118 of file big_endian.h.

◆ bei8_dec()

int8_t bei8_dec ( const char ptr[1])
inlinestatic

Decode an 8-bit signed integer in big-endian format.

Definition at line 121 of file big_endian.h.

◆ bei16_dec()

int16_t bei16_dec ( const char ptr[2])
inlinestatic

Decode a 16-bit signed integer in big-endian format.

Definition at line 123 of file big_endian.h.

◆ bei24_dec()

int32_t bei24_dec ( const char ptr[3])
inlinestatic

Decode a 24-bit signed integer in big-endian format.

Definition at line 125 of file big_endian.h.

◆ bei32_dec()

int32_t bei32_dec ( const char ptr[4])
inlinestatic

Decode a 32-bit signed integer in big-endian format.

Definition at line 127 of file big_endian.h.

◆ bei40_dec()

int64_t bei40_dec ( const char ptr[5])
inlinestatic

Decode a 40-bit signed integer in big-endian format.

Definition at line 129 of file big_endian.h.

◆ bei48_dec()

int64_t bei48_dec ( const char ptr[6])
inlinestatic

Decode a 48-bit signed integer in big-endian format.

Definition at line 131 of file big_endian.h.

◆ bei56_dec()

int64_t bei56_dec ( const char ptr[7])
inlinestatic

Decode a 56-bit signed integer in big-endian format.

Definition at line 133 of file big_endian.h.

◆ bei64_dec()

int64_t bei64_dec ( const char ptr[8])
inlinestatic

Decode a 64-bit signed integer in big-endian format.

Definition at line 135 of file big_endian.h.

◆ bef32_enc()

void bef32_enc ( char ptr[4],
const float f )
inlinestatic

Encode a float in big-endian format.

Definition at line 138 of file big_endian.h.

◆ bef64_enc()

void bef64_enc ( char ptr[8],
const double f )
inlinestatic

Encode a double in big-endian format.

Definition at line 140 of file big_endian.h.

◆ bef32_dec()

float bef32_dec ( const char ptr[4])
inlinestatic

Decode a float in big_endian format.

Definition at line 143 of file big_endian.h.

◆ bef64_dec()

double bef64_dec ( const char ptr[8])
inlinestatic

Decode a double in big_endian format.

Definition at line 145 of file big_endian.h.