JavaScript module for unpacking and packing based loosely around the Perl packing syntax.
Working demo can be found at unpack.isthe.link.
Lookup table for unpacking:
a
A string with arbitrary binary data, will be null padded.A
text (ASCII) string, will be space padded.b
A bit string (ascending bit order inside each byte).c
A signed char (8-bit) value.C
An unsigned char (octet) value.s
A signed short (16-bit) value.S
An unsigned short value.i
A signed integer (32-bit) value.I
A unsigned integer value.l
A signed long (64-bit) value.L
An unsigned long value.n
An unsigned short (16-bit) in "network" (big-endian) order.N
An unsigned long (32-bit) in "network" (big-endian) order.f
A single-precision float in native format.d
A double-precision float in native format.x
A null byte (a.k.a ASCII NUL, "\000", chr(0))
Each type can also include a number, such as A5
will unpack to a 5 byte ascii string.
Unless otherwise stated, endianness can be set to little by using <
, such as: <I I L
unpacks using little endian 2 32bit unsigned ints and 1 64 bit long.