Skip to content

Arbitrary‐size integers

Zade Viggers edited this page May 23, 2024 · 3 revisions

Note

This page has been updated for jDataView 3

Explanation

jDataView supports I/O operations on integers with non-standard bit length, such as 3, 5, or 7. Such numbers are widely used in different popular binary formats, especially in those that are used for data compression or storing multimedia information.

These methods allow you to use a bitLength less than or equal to 32 bits.

Don't forget to manually ensure byte padding before reading non-bitfield values after calling these methods (if you implement some standard popular format, it's most likely already done for you).

Reference

See writeXXX methods to understand the write variants of the set methods.

// Get an integer of any bit length up to 32
getSigned(bitLength: number, byteOffset?: number): number
// Set a signed integer of any bit length up to 32
setSigned(byteOffset: number | undefined, value: number, bitLength: number): void
writeSigned(value: number, bitLength: number): void

// Get an unsigned integer of any bit length up to 32
getUnsigned(bitLength: number, byteOffset?: number): number
// Set an unsigned integer of any bit length up to 32
setUnsigned(byteOffset: number | undefined, value: number, bitLength: number): void
writeUnsigned(value: number, bitLength: number): void