Skip to content
Number Buffet

Hexadecimal numbers

List a range of integers in base 16, with optional 0x prefix, byte-pair grouping and zero-padding to a fixed width.

2 min read

Settings

Quick presets

The first value, in ordinary decimal. Counting continues with exact big integers even past 2^53 - 1.

Use 16 to advance one hex digit at a time, or 256 to advance one byte at a time.

0 means no padding. Set 2 for byte values, 4 for 16-bit words, 6 for a colour triplet; values too wide to fit are left unpadded.

A-F or a-f. Both are correct; the C and web worlds lean lowercase, hardware manuals lean upper.

Inserts a space every two digits, the way a hex dump is laid out.

Writes each line as "31 = 1F", which is what makes a conversion table.

Fine-tune the look

Pick a preset next to the image first — these controls adjust it.

Frame

A border drawn inside the edge of the image.

Advanced

Results

16 values

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

16 values from 0 to 15, written in base 16.


Make an image

Turn on JavaScript to style and download these numbers as an image. The values themselves are listed above.

Text on the image

Drag a line straight onto the picture to place it — once placed, it stays exactly where you put it. Everything here is drawn into the download.

About hexadecimal numbers

Base 16 is the youngest of the bases in daily use, and it exists because of a hardware decision. Grouping bits in fours lets one written digit stand for exactly four of them, so a byte is two digits and a 16-bit word is four, with no digit ever straddling a byte boundary. Octal did the same job on machines whose word sizes were multiples of three — the PDP-8's 12-bit words, the 36-bit IBM 7090 — and lost ground as the 8-bit byte became standard. Unix file permissions, still written 644 and 755, are an octal survival.

Base 16 had at least one advocate before computers existed. John W. Nystrom, a Swedish-American engineer, published a complete hexadecimal scheme in 1862 as the Tonal System, with invented names for the digits and matching proposals for hexadecimal weights, measures and coinage. It went nowhere.

Early machines disagreed about what to write for the six digits above 9; the Bendix G-15 of 1956 used the lowercase letters u, v, w, x, y and z. The name wobbled as well. "Hexadecimal" is a macaronic word, welding the Greek hexa- for six onto a Latinate -decimal; the consistently Latin "sexadecimal" is the older form, and was still turning up in Bendix documentation in the 1950s. The A-to-F convention everyone inherited established itself as the de facto standard from 1966, in the wake of the Fortran IV manual for the IBM System/360.

Notation itself never converged. C writes 0x1F, and C++, Java, Python, JavaScript, Go and Rust all followed; Motorola assemblers and the Pascal family write $1F; Intel-style assemblers append an h, as in 1Fh; the web writes colours as #1F1F1F. Four bits got a name of their own along the way — a nibble, sometimes spelled nybble, half a byte and exactly one hexadecimal digit.

Key properties

  • One hexadecimal digit is exactly four bits, so two digits cover one 8-bit byte: 00 to FF is 0 to 255.
  • Converting between hexadecimal and binary is digit-by-digit substitution, with no carrying across digits.
  • FFFF is 65,535 and FFFFFFFF is 4,294,967,295 — the largest unsigned 16-bit and 32-bit values.
  • An n-bit value needs ceil(n/4) hexadecimal digits, which is why a 24-bit colour is written as six.
  • A number is divisible by 15 exactly when its hexadecimal digits sum to a multiple of 15 — casting out nines, rebased.
  • 1/d in lowest terms terminates in hexadecimal only when d is a power of two, so 1/3 and 1/5 both recur.
  • 2^53 - 1, the largest integer a JavaScript number holds exactly, is 1FFFFFFFFFFFFF in hexadecimal.
  • DEADBEEF, the long-standing debugging marker, is the decimal number 3,735,928,559.

Where they turn up

  • CSS and HTML colours: #FF8000 is one byte each of red, green and blue.
  • MAC addresses are 48 bits written as six hex pairs; IPv6 addresses are 128 bits written as eight groups of four hex digits.
  • Unicode code points are written as U+ followed by hexadecimal, as in U+1F600.
  • File-format magic numbers: a Java class file opens with the four bytes CAFEBABE, and a PNG opens with byte 89 followed by the letters P, N and G.
  • Git names commits by their SHA-1 hash printed as 40 hexadecimal digits, usually abbreviated to the first seven.

How to use this generator

The generated values appear at the top, with a copy button beside them. To turn them into an image, pick a look from the style presets under Make an image, choose an export size, and download as PNG, JPEG or WebP. Everything is rendered in your browser, so nothing you generate is sent to a server.

The address bar updates as you work, so the link always reproduces exactly what you see — handy for sharing a specific sequence or saving a configuration for later. Use Copy to take the values as plain text, or Export data for CSV, JSON, NDJSON, SQL or XML.

Sources

Historical summaries on this page draw on the openly licensed references listed above. Spotted an error? Tell us and we will fix it.