public static void Main()
Int64 start = 0x3B050002F10673;
Console.WriteLine("start"); Console.WriteLine(start);
Int64 a_26_only = start & 0x3FFFFFF;
Console.WriteLine("a_26_only"); Console.WriteLine(a_26_only);
Console.WriteLine(Convert.ToString(a_26_only, 2));
Console.WriteLine("0x3FFFFFF"); Console.WriteLine(0x3FFFFFF);
Int64 a_without_parity = a_26_only >> 1;
Console.WriteLine("a_without_parity"); Console.WriteLine(a_without_parity);
Int64 card_number = a_without_parity & 0xffff;
Console.WriteLine("card_number"); Console.WriteLine(card_number);
Int64 card_number2 = a_without_parity & (long)(Math.Pow(2,16)-1);
Console.WriteLine("card_number2"); Console.WriteLine(card_number2);
Int64 facility_code = (a_without_parity >> 16 ) & 0xff;
Console.WriteLine("facility_code"); Console.WriteLine(facility_code);
Int64 facility_code2 = (a_without_parity >> 16 ) & (long)(Math.Pow(2,8)-1);
Console.WriteLine("facility_code2"); Console.WriteLine(facility_code2);
double x = Math.Pow(2,8);