User Rating 0.0
Total Usage 0 times
Little Endian Big Endian
0 bytes

Memory Map (Hex View)

Typed Array Views

Developer Snippets

Modern JS (Zero Copy)
const buffer = new Uint8Array([/* data */]).buffer;
const view = new DataView(buffer);
Node.js Buffer
const buf = Buffer.from([/* data */]);
// Node buffers are Uint8Arrays in modern Node
Is this tool helpful?

Your feedback helps us improve.

About

Binary data handling is the bedrock of high-performance web applications, particularly when dealing with WebGL, WebAssembly (WASM), or WebSocket streams. In JavaScript, the ArrayBuffer represents a generic, fixed-length raw binary data buffer. However, you cannot manipulate the contents of an ArrayBuffer directly; you must create a "View".

This tool acts as a multi-lens microscope for your binary data. It allows you to input raw bytes (via Hex, Base64, or JSON) and simultaneously inspect how different Typed Arrays interpret that same memory block. This is critical for debugging endianness issues - where the order of bytes differs between processor architectures (e.g., Little Endian vs Big Endian). A single misaligned byte in a Float32Array can turn 1.0 into 2.3e-41.

Unlike simple converters that create copies, this inspector simulates the behavior of native Views. It highlights how Uint8Array, Int16Array, and Float32Array read from the exact same memory address P, applying different bit-masks and interpretations.

arraybuffer binary hex-editor typed-arrays node-buffer

Formulas

When a Typed Array reads a value from a buffer, it calculates the memory offset based on the element index i and the bytes-per-element constant B.

Address = BasePointer + ( i × B )

For multi-byte integers (e.g., 16-bit or 32-bit), the system must decide the order of bytes. In Little Endian (standard for Intel/AMD/Apple Silicon), the least significant byte comes first. In Big Endian (network order), the most significant byte is first.

Value16 = {
b0 + 256b1 (Little Endian)256b0 + b1 (Big Endian)

Reference Data

Typed ArrayBytes per ElementValue RangeWeb IDL Type
Int8Array1-128 to 127byte
Uint8Array10 to 255octet
Uint8ClampedArray10 to 255octet
Int16Array2-32,768 to 32,767short
Uint16Array20 to 65,535unsigned short
Int32Array4-2e9 to 2e9long
Float32Array41.2e-38 to 3.4e38unrestricted float
Float64Array85.0e-324 to 1.8e308unrestricted double
BigInt64Array8-263 to 263-1bigint

Frequently Asked Questions

ArrayBuffer is part of the standard ECMAScript (JavaScript) specification and is supported in all modern browsers. "Buffer" is a Node.js-specific API designed for binary data before ArrayBuffers existed. In modern Node.js, Buffer is a subclass of Uint8Array.
Floating point numbers follow the IEEE-754 standard. If the underlying bytes were not originally encoded as a float, interpreting them as such will result in very small (e.g., 1.4e-45) or very large numbers, or NaN, due to how the exponent and mantissa bits are parsed.
Endianness refers to the order in which bytes are stored for multi-byte numbers. If you read a file created on a Big Endian system using a Little Endian viewer, your values will be scrambled (e.g., 256 becomes 1). The web (WASM/JS) generally runs in Little Endian.
Yes. You can use "new TextDecoder().decode(array)" to convert bytes to a UTF-8 string. However, if the bytes are not valid UTF-8 sequences, you may see replacement characters ().