Arbitrary‐size integers
Zade Viggers edited this page May 23, 2024
·
3 revisions
Note
This page has been updated for jDataView 3
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).
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