User Rating 0.0
Total Usage 0 times
Convention
0 chars
0 chars
Quick presets:
Is this tool helpful?

Your feedback helps us improve.

About

Base26 encoding maps alphabetic characters (A - Z) to numerical values in radix 26. Two conventions exist: zero-indexed (A = 0) used in combinatorics and hashing, and bijective (A = 1) used in spreadsheet column labels. Confusing these conventions produces off-by-one errors that cascade through downstream systems. This tool converts between Base26 strings and standard Base64 (RFC 4648) by computing the exact decimal intermediate via arbitrary-precision arithmetic. It handles strings of up to 10,000 characters without overflow.

Base64 encodes binary data into 64 printable ASCII characters, commonly used in data URIs, email attachments (MIME), and API token encoding. The conversion path here is Base26 → decimal integer → raw byte array → Base64. Reversing the process requires strict charset validation on both ends. Note: this tool treats Base26 as a pure positional numeral system. It does not perform text-to-Base64 ASCII encoding. If you need to encode arbitrary UTF-8 text, use a dedicated Base64 text encoder instead.

base26 base64 number base converter encoding radix conversion alphabet encoding bijective numeration

Formulas

The conversion pipeline operates in three stages. First, the Base26 alphabetic string is decoded into a decimal integer. Then that integer is serialized to a byte array (big-endian). Finally the byte array is encoded into Base64 per RFC 4648.

Stage 1 - Base26 (zero-indexed) to decimal:

D = n1i=0 ci 26n1i

where ci is the zero-indexed value of character i (A = 0, Z = 25) and n is the string length.

For bijective Base26 (A = 1):

D = n1i=0 ci 26n1i

where ci ranges from 1 (A) to 26 (Z).

Stage 2 - Decimal to byte array:

Extract bytes via repeated division: byte = D mod 256, then D = D256 (integer division). Collect bytes in reverse (big-endian).

Stage 3 - Bytes to Base64 (RFC 4648):

Group bytes into 3-byte blocks (24 bits). Split each block into four 6-bit indices. Map each index to the Base64 alphabet: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/. Pad with = if the final block has fewer than 3 bytes.

Where D = decimal intermediate value, ci = character value at position i, n = input string length.

Reference Data

Base26 CharZero-Indexed ValueBijective ValueBinary (8-bit)Hex
A01000000000x00
B12000000010x01
C23000000100x02
D34000000110x03
E45000001000x04
F56000001010x05
G67000001100x06
H78000001110x07
I89000010000x08
J910000010010x09
K1011000010100x0A
L1112000010110x0B
M1213000011000x0C
N1314000011010x0D
O1415000011100x0E
P1516000011110x0F
Q1617000100000x10
R1718000100010x11
S1819000100100x12
T1920000100110x13
U2021000101000x14
V2122000101010x15
W2223000101100x16
X2324000101110x17
Y2425000110000x18
Z2526000110010x19
AA (zero-idx)2627000110100x1A
AZ (zero-idx)5152001100110x33
BA (zero-idx)5253001101000x34
ZZ (zero-idx)70170200000010101111010x02BD

Frequently Asked Questions

In zero-indexed Base26, A = 0 and Z = 25. The string "AA" equals 26. Leading A's act like leading zeros and affect the value. In bijective Base26, A = 1 and Z = 26. There is no zero digit. "A" equals 1, "AA" equals 27, and "AZ" equals 52. Spreadsheet columns (Excel, Google Sheets) use bijective. Most hashing and cryptographic contexts use zero-indexed.
JavaScript's Number type uses IEEE 754 double-precision, which loses integer precision above 253 (9,007,199,254,740,992). A Base26 string of just 12 characters can exceed this limit. For example, "ZZZZZZZZZZZZ" in zero-indexed mode equals 95,428,956,661,682,175. BigInt provides arbitrary precision, so strings of any practical length convert without rounding errors.
No. This tool treats the input strictly as a Base26 positional number, not as raw text. It computes the numeric value of the Base26 string, converts that number to bytes, then Base64-encodes those bytes. If you paste "HELLO", it interprets it as the Base26 number HELLO (decimal 3,752,127 in zero-indexed mode), not as the ASCII bytes 72, 69, 76, 76, 79. For text-to-Base64 encoding, use the browser's built-in btoa() function or a dedicated text encoder.
The tool strips trailing = padding before decoding. Each = indicates that the final Base64 group was padded to complete a 4-character block. The decoder reconstructs the original byte array, converts it to a BigInt, then divides repeatedly by 26 to extract Base26 digits. If the resulting BigInt is 0, the output is "A" (zero-indexed) or an empty string (bijective, since bijective has no zero representation).
In zero-indexed mode, leading A's are analogous to leading zeros. "A" and "AA" and "AAA" all produce different decimal values (0, 26, 702 respectively) because position matters. This differs from standard decimal where "007" equals "7". Each additional character multiplies by 26 and adds. The tool preserves this positional semantics exactly.
The default output uses standard Base64 (RFC 4648 Section 4) with + and / characters and = padding. These characters are not URL-safe. If you need URL-safe Base64 (RFC 4648 Section 5), replace + with -, / with _, and strip = padding. The tool displays both variants in the output for convenience.