Base 37 by Giorgio

\xef\xbb\xbfusing System;\x0d
using System.Collections.Generic;\x0d
\x0d
namespace Base10To32\x0d
{\x0d
    class Program\x0d
    {\x0d
        static void Main(string[] args)\x0d
        {\x0d
            List<long> data = new List<long>()\x0d
            {\x0d
                1, 35, 36, 37, 68014200, 1201688513203, 1838984, 49775, 50295, 129196161522745, 50488, 571926,\x0d
                22478289, 419, 29223469995, 40006930423496, 41227384038070, 41555988836517, 12, 864529515,\x0d
                60476128582252077, 32290924359, 23721572, 1645987040163039, 24047518, 654775, 13,\x0d
                2373830872869027112, 493, 18713, 1022496015, 1407784785105, 1461815574763, 785490, 2025509547646187,\x0d
                29366140, 40202259743, 22302, 42704054376, 616, 2165721364445219, 1155892318, 31368961, 1161355368,\x0d
                22942, 44364298055, 929093, 690, 19, 977254, 2507368361614841, 27180, 20, 1038789, 39913104,\x0d
                2041273739771, 1498659750, 1097185, 29869, 818, 2115636644911, 1546005679, 1139872, 42175921, \x0d
                58084576487, 60024501243, 1231446, 45602225, 1688228688, 1802461611, 1753775638, 65143639721,\x0d
                1286511, 47600913, 34879, 1291514, 1291721, 3336077465910569, 1785446597, 1798813520, 66556100243, \x0d
                36059, 27, 51327457, 1388051, 1409142, 1409766, 53098821, 1965001823, 38863, 100465080334706,\x0d
                1985968139, 2726916905099, 40166, /*276088010547702691069957,*/ 2908444116020, 1594018, 43127, 1635340, 60859915, 4220272028585755,\x0d
                45479, 62672655, 1711641, 48211, 48968\x0d
            };\x0d
\x0d
            Base37 b37 = new Base37();\x0d
            foreach (var item in data)\x0d
            {\x0d
                Console.WriteLine(b37.ChangeToB32(item));\x0d
                if(item == 40166) Console.WriteLine("universallambda");\x0d
            }\x0d
\x0d
            Console.Read();\x0d
        }\x0d
    }\x0d
\x0d
    public class Base37\x0d
    {\x0d
        private const long Base = 37;\x0d
        private char[] B32;\x0d
        private List<char> result;\x0d
\x0d
        public Base37()\x0d
        {\x0d
            result = new List<char>();\x0d
            B32 = new char[]\x0d
            {\x0d
                '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\x0d
                'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', \x0d
                'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', \x0d
                'u', 'v', 'w', 'x', 'y', 'z', 'A'\x0d
            };\x0d
        }\x0d
\x0d
        public string ChangeToB32(long number)\x0d
        {\x0d
            while (number > 0)\x0d
            {\x0d
                result.Add(B32[number % Base]);\x0d
                number = number / Base;\x0d
            }\x0d
\x0d
            var charArray = result.ToArray();\x0d
            result.Clear();\x0d
            return ReverseXor(charArray);\x0d
        }\x0d
\x0d
        public static string ReverseXor(char[] charArray)\x0d
        {\x0d
            int len = charArray.Length - 1;\x0d
\x0d
            for (int i = 0; i < len; i++, len--)\x0d
            {\x0d
                charArray[i] ^= charArray[len];\x0d
                charArray[len] ^= charArray[i];\x0d
                charArray[i] ^= charArray[len];\x0d
            }\x0d
            return new string(charArray);\x0d
        }\x0d
    }\x0d
\x0d
}\x0d

Note that non-ascii characters in the above source code will be escaped (such as \x9f).

download

return to the top page