Skip to content

Instantly share code, notes, and snippets.

@John2496
Last active December 20, 2015 19:59
Show Gist options
  • Save John2496/6187082 to your computer and use it in GitHub Desktop.
Save John2496/6187082 to your computer and use it in GitHub Desktop.
convertDecimalToBase = function (decimal, base) {
var symbols = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".split("");
var conversion = "";
if (base > symbols.length || base <= 1) {
return false;
}
while (decimal >= 1) {
conversion = symbols[(decimal - (base * Math.floor(decimal / base)))] + conversion;
decimal = Math.floor(decimal / base);
}
return (base < 11) ? parseInt(conversion) : conversion;
}
reverseString = function reverse(s) {
return s.split("").reverse().join("");
}
padString = function(width, string, padding) {
return (width <= string.length) ? string : padString(width, padding + string, padding);
}
encodeString = function(binaryString) {
var reversedBinaryString = reverseString(binaryString);
var decimal = parseInt(reversedBinaryString, 2);
var encodedString = convertDecimalToBase(decimal, 36);
return encodedString;
}
decodeString = function(encodedString) {
var decodedString = parseInt(uniqueId, 36);
var binaryString = decodedString.toString(2);
binaryString = padString(32, binaryString, "0");
var reversedBinaryString = reverseString(binaryString);
return reversedBinaryString;
}
// String representing the GIF states (0 = locked, 1 = unlocked)
var binaryString = "00011111111111111111111111110000";
console.log("Binary String: " + binaryString);
// Generate ID
var uniqueId = encodeString(binaryString);
console.log("ID: " + uniqueId);
// Get binary string from ID
var decodedId = decodeString(uniqueId)
console.log("Decoded ID:" + decodedId);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment