const num = 1337; const base36 = num.toString(36); // "y5" const parsed = parseInt("y5", 36); // 1337 So if you don’t need custom validation or edge-case handling, the built-in methods work perfectly.
const decoded = fromBase36(base36); console.log( Base-36 ${base36} = decimal ${decoded} );
function toBase36(num) { if (num === 0) return "0"; let result = ""; const digits = "0123456789abcdefghijklmnopqrstuvwxyz"; let value = num; while (value > 0) { result = digits[value % 36] + result; value = Math.floor(value / 36); } return result; } function fromBase36(str) { const digits = "0123456789abcdefghijklmnopqrstuvwxyz"; let result = 0; for (let i = 0; i < str.length; i++) { const char = str[i].toLowerCase(); const value = digits.indexOf(char); if (value === -1) throw new Error( Invalid base-36 character: ${str[i]} ); result = result * 36 + value; } return result; }
// Example usage: const decimal = 123456789; const base36 = toBase36(decimal); console.log( Decimal ${decimal} = base-36 ${base36} );
| CentOS 7 3.10.0-1160 | CentOS 8 4.18.0-348 | Debian 9 4.9.0-16 | Debian 10 4.19.0-17 | Debian 11 5.10.0-8 | Debian 12 6.1.0-18 | Fedora 35 5.16.18-200 | OpenSUSE 15.3 5.3.18-59.19 | Ubuntu 16 4.15.0-142 | Ubuntu 18 4.15.0-159 | Ubuntu 20 5.13.0-28 | Ubuntu 22 5.15.0-30 | |
| APCI-1016 | PASS | PASS | PASS | PASS | PASS | IN PROGRESS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCI-1032 | PASS | PASS | PASS | PASS | PASS | IN PROGRESS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCI-1500 | PASS | PASS | PASS | PASS | PASS | IN PROGRESS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCI-1516 | PASS | PASS | PASS | PASS | PASS | IN PROGRESS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCI-1564 | PASS | PASS | PASS | PASS | PASS | IN PROGRESS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCI-1648 | PASS | PASS | PASS | PASS | PASS | IN PROGRESS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCI-1696 | PASS | PASS | PASS | PASS | PASS | IN PROGRESS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCI-1710 / APCIe-1711 | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCI-1712 | PASS | PASS | PASS | PASS | PASS | IN PROGRESS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCI-2016 | PASS | PASS | PASS | PASS | PASS | IN PROGRESS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCI-2032 | PASS | PASS | PASS | PASS | PASS | IN PROGRESS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCI-2200 | PASS | PASS | PASS | PASS | PASS | IN PROGRESS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCI-3001 | PASS | PASS | PASS | PASS | PASS | IN PROGRESS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCI-3120 | PASS | PASS | PASS | PASS | PASS | IN PROGRESS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCI-3200 | IN PROGRESS | IN PROGRESS | IN PROGRESS | IN PROGRESS | IN PROGRESS | IN PROGRESS | IN PROGRESS | IN PROGRESS | IN PROGRESS | IN PROGRESS | PASS | IN PROGRESS |
| APCI-3504 | PASS | PASS | PASS | PASS | PASS | IN PROGRESS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCI-3600 | PASS | PASS | PASS | PASS | PASS | IN PROGRESS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCI-3701 | PASS | PASS | PASS | PASS | PASS | IN PROGRESS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCIe-040 | PASS | PASS | PASS | PASS | PASS | IN PROGRESS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCIe-1516 | PASS | PASS | PASS | PASS | PASS | IN PROGRESS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCIe-1532 | PASS | PASS | PASS | PASS | PASS | IN PROGRESS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCIe-1564 | PASS | PASS | PASS | PASS | PASS | IN PROGRESS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCIe-1711 | PASS | PASS | PASS | PASS | PASS | IN PROGRESS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCIe-2032 | PASS | PASS | PASS | PASS | PASS | IN PROGRESS | PASS | PASS | PASS | PASS | PASS | PASS |
| APCIe-2200 | PASS | PASS | PASS | PASS | PASS | IN PROGRESS | PASS | PASS | PASS | PASS | PASS | PASS |
| xPCI-3xxx | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS | PASS |