public static string ConvertToBase26(long number)
const int baseValue = 26;
const string letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
string result = string.Empty;
int remainder = (int)(number % baseValue);
result = letters[remainder] + result;
public static long ConvertFromBase26(string base26Number)
string base26 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
for (int i = 0; i < base26Number.Length; i++)
char digit = base26Number[i];
long value = base26.IndexOf(digit) + 1;
result = result * 26 + value;
public static string ConvertToHexadecimal(long number)
return number.ToString("X");
public static long DecodeHexadecimal(string hexadecimal)
return long.Parse(hexadecimal, System.Globalization.NumberStyles.HexNumber);
public static void Main(string[] args)
long cnpj = 999999999999;
string h15cpf = ConvertToHexadecimal(cpf);
string h26cpf = ConvertToBase26(cpf);
Console.WriteLine("CPF ORI: " + cpf);
Console.WriteLine("CPF HEX: " + h15cpf);
Console.WriteLine("CPF B26: " + h26cpf);
Console.WriteLine("-----------------------------");
string h15cnpj = ConvertToHexadecimal(cnpj);
string h26cnpj = ConvertToBase26(cnpj);
Console.WriteLine("CNPJ ORI: " + cnpj);
Console.WriteLine("CNPJ HEX: " + h15cnpj);
Console.WriteLine("CNPJ B26: " + h26cnpj);
Console.WriteLine("-----------------------------");
string h15data = ConvertToHexadecimal(data);
string h26data = ConvertToBase26(data);
Console.WriteLine("DATA ORI: " + data);
Console.WriteLine("DATA HEX: " + h15data);
Console.WriteLine("DATA B26: " + h26data);
Console.WriteLine("-----------------------------");