Byte Semantics and Numeric Representations

Mathematical and algorithmic rules governing half-open intervals, 64-bit integer strings, raw float bits, and character encoding transformations.

Coordinate System: Half-Open Intervals

All internal ranges across the Bitpeek core, CLI, MCP tools, and recipes adhere to the standard mathematical convention of half-open intervals: [start, endExclusive).

  • start: The 0-based index of the first byte included in the range.
  • end: The 0-based index of the first byte excluded from the range.
  • length: Always equal to end - start.
  • A range of length 0 (e.g. [4, 4)) represents an insertion point with zero bytes.

In user-facing UI displays, coordinates are presented clearly with bracket notation (e.g. [0x00..0x04)) so developers never confuse inclusive bounds with half-open slices.

64-Bit Integer Precision & JSON Serialization

Standard JavaScript numbers use IEEE-754 double precision floats, which can only represent integers accurately up to 253 - 1 (9,007,199,254,740,991). Values above this threshold lose precision silently.

Bitpeek solves this issue definitively:

  • 64-bit unsigned (u64) and signed (i64) integers are parsed using native BigInt arithmetic.
  • In JSON API responses, CLI outputs, and MCP tool payloads, 64-bit integers are encoded as exact decimal strings (e.g. "18446744073709551615") rather than truncated numbers.

Floating-Point Semantics: NaN Payloads & Signed Zero

When inspecting IEEE-754 floating-point numbers (16-bit half precision, 32-bit single precision, and 64-bit double precision), Bitpeek preserves critical edge cases:

  • Positive and Negative Zero: +0.0 and -0.0 are distinguished and preserved.
  • Infinities: +Infinity and -Infinity are explicitly serialized.
  • NaN Payloads: Because JavaScript JSON.stringify converts NaN to null, Bitpeek displays both the floating-point interpretation and the exact raw hexadecimal bits so NaN diagnostic payloads are never lost.

Local processing and privacy

The Byte semantics workflow opens the same Bitpeek browser workspace. Selected file bytes, file names, pasted input, searches, edits, hashes, and comparison data are processed in local browser memory and are not sent to a Bitpeek server.

The static guide itself can be read without opening a file or creating an account.

Frequently asked questions

Why are 64-bit numbers returned as strings in JSON?

To prevent silent precision loss caused by standard JSON parsers converting integers above 2^53 - 1 into double-precision approximations.

How does Bitpeek handle invalid UTF-8 sequences?

Invalid UTF-8 byte sequences are highlighted with error flags, and non-printable bytes in ASCII columns are displayed as safe dots (.) rather than broken replacement characters.