PDF & files

Hex dump viewer

Look at the bytes of a file or pasted data as an xxd-style hex dump, search for text or hex, jump to a match and read numbers at any offset.

Hex dump viewer
Esc to restore

Your inputs

Any file up to 30 MB. Any 64 KiB window of it can be shown at a time. Files are read in this browser only and are never uploaded.

Used only when no file is chosen. Up to 5 MB of text.

Where the dump begins. Offsets count from the first byte, which is 0.

From 1 to 65,536 (64 KiB) bytes at a time.

Starts the dump at the row that holds this match, instead of the start offset above.

The table reads the bytes from this offset as integers, floats and a UTF-8 character, in both byte orders.

Results update as you type. Larger files run when you press Update result.

Your result

Your result will appear here.

More actions

Your inputs stay in this browser. Nothing is uploaded or saved.

A clear answer. Here’s how.

Shows 16 bytes to a row in the layout of the xxd program: an eight-digit hexadecimal offset, the bytes in groups of 1, 2, 4 or 8, and a text column in which printable ASCII is shown as itself and every other byte as a dot. Offsets are counted from the start of the data even when the dump starts later, as xxd -s does, and the dump you copy or download is byte for byte what xxd would print for that window. A window is at most 64 KiB; use the start offset, or jump to a match, to see other parts of a file of up to 30 MB. The search looks through the whole file for a byte pattern, given as UTF-8 text (letter case matters) or as hex, and lists where each match starts; matches may overlap. The table reads the bytes at one offset as unsigned and signed integers of 8, 16, 32 and 64 bits and as 32- and 64-bit IEEE 754 floats, in little-endian and big-endian order, and decodes the UTF-8 character that starts there. Entropy is the Shannon entropy of the window in bits per byte, the sum of −p·log₂p over the byte values that occur: 0 for one repeated value, 8 for a perfectly even spread, which is typical of compressed or encrypted data and rarely of text. The chart shows how often each byte value occurs. This is a viewer: it never changes the data.

How this is checked

5 reference checks passed These 5 cases were run when this page was built, on 20 October 2026, and all reproduce within the stated tolerance. The same cases are part of the automated tests that run on every change to Toolmoz. Engine version 1.

See the checks and where each expected answer comes from
  1. Case 1

    Inputs
    Or paste text or hex bytes Hello, world! The pasted data is textSearch for (optional) Bytes per group 2
    Expected, and what Toolmoz gave
    text expected 00000000: 4865 6c6c 6f2c 2077 6f72 6c64 210a Hello, world!. , Toolmoz 00000000: 4865 6c6c 6f2c 2077 6f72 6c64 210a Hello, world!. Data size (bytes) expected 14, Toolmoz 14Window length (bytes) expected 14, Toolmoz 14
    Where the expected answer comes from
    Output of the xxd program (xxd 2026-06-16 from Vim) for the 14 bytes of Hello, world! and a line feed: one row, seven spaces of padding before the text column
    Allowed difference
    exact
  2. Case 2

    Inputs
    Or paste text or hex bytes 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1FThe pasted data is hexSearch for (optional) Bytes per group 2
    Expected, and what Toolmoz gave
    text expected 00000000: 0001 0203 0405 0607 0809 0a0b 0c0d 0e0f ................ 00000010: 1011 1213 1415 1617 1819 1a1b 1c1d 1e1f ................ , Toolmoz 00000000: 0001 0203 0405 0607 0809 0a0b 0c0d 0e0f ................ 00000010: 1011 1213 1415 1617 1819 1a1b 1c1d 1e1f ................ Entropy of the window (bits per byte) expected 5, Toolmoz 5
    Where the expected answer comes from
    xxd output for the bytes 00 to 1F (all non-printable, so the text column is dots); 32 different values each occurring once give p = 1/32 and H = log2(32) = 5 bits per byte
    Allowed difference
    ±1e-12
  3. Case 3

    Inputs
    Or paste text or hex bytes 12 34 56 78 9A BC DE F0The pasted data is hexSearch for (optional) Read numbers at offset 0
    Expected, and what Toolmoz gave
    Unsigned 32-bit, little-endian expected 2018915346, Toolmoz 2018915346Unsigned 32-bit, big-endian expected 305419896, Toolmoz 305419896Unsigned 16-bit, little-endian expected 13330, Toolmoz 13330Unsigned 16-bit, big-endian expected 4660, Toolmoz 4660Signed 8-bit expected 18, Toolmoz 18Unsigned 64-bit, big-endian expected 1311768467463790320, Toolmoz 1311768467463790320
    Where the expected answer comes from
    Reading 12 34 56 78 by hand: big-endian 0x12345678 = 305,419,896; little-endian reverses the bytes to 0x78563412 = 2,018,915,346; 16-bit 0x1234 = 4,660 and 0x3412 = 13,330; 0x123456789ABCDEF0 = 1,311,768,467,463,790,320 (checked with Python struct)
    Allowed difference
    exact
  4. Case 4

    Inputs
    Or paste text or hex bytes 3F F0 00 00 00 00 00 00The pasted data is hexSearch for (optional) Read numbers at offset 0
    Expected, and what Toolmoz gave
    64-bit float, big-endian expected 1, Toolmoz 132-bit float, big-endian expected 1.875, Toolmoz 1.875
    Where the expected answer comes from
    IEEE 754: 0x3FF0000000000000 has sign 0, exponent 0x3FF (the bias, so 2^0) and fraction 0, which is 1; read as a 32-bit float the same first four bytes 0x3FF00000 have exponent 127 and fraction 0.875, which is 1.875
    Allowed difference
    exact
  5. Case 5

    Inputs
    Or paste text or hex bytes 00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 78 79 7a 7b 7c 7d 7e 7f 80 81 82 83 84 85 86 87 88 89 8a 8b 8c 8d 8e 8f 90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d 9e 9f a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 aa ab ac ad ae af b0 b1 b2 b3 b4 b5 b6 b7 b8 b9 ba bb bc bd be bf c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 ca cb cc cd ce cf d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 da db dc dd de df e0 e1 e2 e3 e4 e5 e6 e7 e8 e9 ea eb ec ed ee ef f0 f1 f2 f3 f4 f5 f6 f7 f8 f9 fa fb fc fd fe ffThe pasted data is hexSearch for (optional) Bytes to show 256
    Expected, and what Toolmoz gave
    Entropy of the window (bits per byte) expected 8, Toolmoz 8Data size (bytes) expected 256, Toolmoz 256Unsigned 32-bit, big-endian expected 66051, Toolmoz 66051
    Where the expected answer comes from
    The 256 byte values each once: p = 1/256 and H = 256 × (1/256) × log2(256) = 8 bits per byte; the first four bytes 00 01 02 03 read as 0x00010203 = 66,051
    Allowed difference
    ±1e-12

What this shows: the engine reproduces independently worked values for these cases. It does not prove every possible input is right. To test an answer you were given, see how to check a number; to see what is and is not checked across Toolmoz, see the accuracy ledger.

See a worked example

Worked example

A fixed demonstration, separate from the values you enter above.

Or paste text or hex bytes
The quick brown fox jumps over the lazy dog.
The pasted data is
Text (read as UTF-8 bytes)
Start at offset (bytes)
0
Bytes to show
4096
Search for (optional)
fox
Search for
Text (as UTF-8)
Show match number (0 for none)
0
Bytes per group
2 (xxd default)
Read numbers at offset
0

Example result

First 5 rows of the example result
Value at offset 0 (0x0)Little-endianBig-endian
Unsigned 8-bit84 (0x54)same
Signed 8-bit84same
Unsigned 16-bit26,70821,608
Signed 16-bit26,70821,608
Unsigned 32-bit543,516,7561,416,127,776

Matches (offset in hex, then decimal): 1: 0x10 (16). To start the dump at one, enter its number under “Show match number”. The dump follows xxd. Entropy is the Shannon entropy of the window: 0 for one repeated byte value, up to 8 for bytes spread evenly (typical of compressed or encrypted data).