Data Types

Types are the fundamental entity defining how a certain region of memory should be interpreted, formatted and displayed. All types are interpreted in little endian. Structures are written using the ImHex Pattern Language.

Unsigned Integers

Unsigned integer types represent regular binary numbers. They are displayed as a integer value ranging from 0 to (2^(8*size-1)).

Name Size
u8 1 Byte
u16 2 Bytes
u32 4 Bytes

Signed Integers

Signed integer types represent signed binary numbers in Two's Complement representation. They are displayed as a integer value ranging from -(2^(7*size)) to (2^(7*size)-1)

Name Size
s8 1 Byte
s16 2 Bytes
s32 4 Bytes

Floating Points

Floating Point types represent a floating pointer number.

Name Size
f32 4 Bytes, IEEE754
f64 8 Bytes, IEEE754

Aliases

Aliases provide are just another way to represent data with a more meaningful type name.

Name Size Description
char 1 Byte ASCII Character
bool 1 Byte Boolean value true / false

Strings

sstr

Sized strings start with a byte length followed by the character bytes. This is the most common string type used.

u32 size;
char bytes[size];

cstr

A c style null terminated string. The string bytes just begin and continue until a null / 0x00 byte is hit.

char bytes[];