Skip to content

Instantly share code, notes, and snippets.

@FlameWolf
Last active October 26, 2023 05:27
Show Gist options
  • Save FlameWolf/a1ac4a1412be80f911f19a4dab9d520c to your computer and use it in GitHub Desktop.
Save FlameWolf/a1ac4a1412be80f911f19a4dab9d520c to your computer and use it in GitHub Desktop.
Convert a BigInt to a base-64 number representation where the digits include (in the ascending order of value): 0-9, a-z, A-Z, &, and #
function bigIntToBase64(value) {
const base = 64n;
const digits = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ&#";
const sign = value < 0n ? "-" : "";
let [result, quotient] = ["", sign ? 0n - this : this];
do {
result = `${digits[Number(quotient % base)]}${result}`;
} while (quotient /= base);
return `${sign}${result}`;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment