Hex Digit Incrementer

Shift every individual digit character in a list of hex values by N, with each digit wrapping around modulo 16 (so "F" plus 1 becomes "0"), applied digit-by-digit across the whole value, distinct from adding N to a value's overall numeric meaning. A free online tool from Staaarter, right in your browser.

Runs locallyUpdated 2026-07-26

Overview

Introduction

There are two very different ways to "add" to a hex value: treat it as one number and add arithmetically, or treat it as a sequence of independent digit characters and shift each one on its own. This tool is the second kind.

It increments every individual digit character across a list of hex values by a chosen amount N, with each digit wrapping around modulo 16 rather than carrying into the next digit the way ordinary addition would.

What Is Hex Digit Incrementer?

The Hex Digit Incrementer walks every digit of every value in your list and shifts its value by N, wrapping from F back to 0 (and beyond, for larger N) rather than carrying into a neighboring digit.

This is fundamentally different from adding N to the value's overall number, digit-by-digit shifting with wraparound almost never produces the same result as ordinary numeric addition, except by coincidence on some inputs.

How Hex Digit Incrementer Works

N is first reduced modulo 16 (with a formula that also handles negative N correctly) so it always represents an equivalent shift of 0-15.

Every digit character of every value in the parsed input list is looked up by its position in "0123456789ABCDEF", shifted by that reduced amount, wrapped back into the same 16-character alphabet with another modulo operation, and reassembled into the output value.

When To Use Hex Digit Incrementer

Use this for digit-level ciphers, obfuscation, or puzzle-style transformations where you want every digit shifted by a consistent step, similar in spirit to a Caesar cipher but operating on hex digits instead of letters.

If you actually want to add N to a value's real numeric meaning, use Hex Value Incrementer instead, this tool's result is generally not the arithmetic sum.

Features

Advantages

  • Applies a perfectly consistent, reversible digit shift (reversible via Hex Digit Decrementer with the same N) across an entire list at once.
  • Handles any integer N, including negative values and values larger than 16, via modulo normalization.
  • Never changes a value's digit count, since every digit maps to exactly one other digit.

Limitations

  • This is a novelty/cipher-style transformation, not an arithmetic operation; its result generally has no simple numeric relationship to the original value plus N.
  • The same shift amount applies to every digit and every value in a single run; there's no per-digit or per-value override.

Examples

Shifting every digit by 1

Input

19
FF, n: 1

Output

2A
00

"1"->"2" and "9"->"A" for the first value; both "F"s wrap around to "0" for the second. Note 0x19 + 1 arithmetically would be 0x1A, not "2A", this is the per-digit result instead.

Shifting by 2, showing further wraparound

Input

0F, n: 2

Output

21

"0" shifts to "2"; "F" (15) shifts to (15+2) mod 16 = 1, i.e. "1", wrapping past "0".

Best Practices & Notes

Best Practices

  • If you need the shift to be reversible, note that Hex Digit Decrementer with the same N exactly undoes this tool's transformation.
  • Use Hex Value Incrementer instead whenever you actually want ordinary numeric addition rather than a per-digit cipher-style shift.

Developer Notes

Implemented with a fixed 16-character alphabet string `"0123456789ABCDEF"`; each digit's index in that string is computed, shifted by `((n % 16) + 16) % 16` (which correctly normalizes negative or oversized N), wrapped again with `% 16`, and mapped back to a character, all independently per digit.

Hex Digit Incrementer Use Cases

  • Building a simple, reversible digit-level cipher over hex data for puzzles or teaching modular arithmetic
  • Testing how a downstream system reacts to a systematically digit-shifted version of valid hex input
  • Exploring the difference between digit-level and value-level transformations side by side with Hex Value Incrementer

Common Mistakes

  • Expecting this to match Hex Value Incrementer's output; the two operate on fundamentally different levels (digit vs. whole value) and generally diverge.
  • Forgetting the wraparound is modulo 16, not modulo 10, since hex digits go up to F (15), not just 9.

Tips

  • Run a value through this tool and then through Hex Digit Decrementer with the same N to confirm you get the original value back.
  • Compare this tool's output against Hex Value Incrementer's on the same input to see concretely how the two operations diverge.

References

Frequently Asked Questions