Advertisement
Guest User

Reversing_11/16

a guest
Mar 22nd, 2017
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.11 KB | None | 0 0
  1. using System;
  2. using System.IO;
  3.  
  4. namespace Task2
  5. {
  6.     class Program
  7.     {
  8.         static bool IsNumber(char ch)
  9.         {
  10.             string numbers="0123456789";
  11.             for (byte i=0;i<10;i++)
  12.                 if (ch==numbers[i])
  13.                     return true;
  14.                 else {}
  15.             return false;
  16.         }
  17.         static string GetOut(long input)
  18.         {
  19.             if (input<10)
  20.                 return input.ToString();
  21.             else
  22.                 return Convert.ToChar((byte)input+55).ToString();
  23.         }
  24.         static string Translation(string input, byte in_ns, byte out_ns)
  25.         {
  26.             if (input=="0")
  27.                 return "0";
  28.             else {}
  29.             byte num;
  30.             long inner=0,tmp;
  31.             for (int i=0;i<input.Length;i++)
  32.             {
  33.                 if (!IsNumber(input[i]))
  34.                     num=(byte)(Convert.ToByte(input[i])-55);
  35.                 else
  36.                     num=Convert.ToByte(input[i]+"");
  37.                 inner+=(long)(num*Math.Pow(in_ns,input.Length-i-1));
  38.             }
  39.             string result="";
  40.             while (inner>0)
  41.             {
  42.                 tmp=inner%out_ns;
  43.                 inner/=out_ns;
  44.                 result+=GetOut(tmp);
  45.             }
  46.             return result;
  47.         }
  48.         static string Reverse(string input)
  49.         {
  50.             // можно впихнуть при конвертации, но так удобнее;
  51.             // существующего метода не нашёл, только через Array.Reverse(char[])
  52.             string result="";
  53.             for (int i=input.Length-1;i>-1;i--)
  54.                 result+=input[i];
  55.             return result;
  56.         }
  57.         static string DigitsGroup(long input)
  58.         { // для удобства наблюдения
  59.             string result=input.ToString();
  60.             for (int count=result.Length;count>0;count-=3)
  61.                 result=result.Insert(count," ");
  62.             return result;
  63.         }
  64.  
  65.         static void Main(string[] args)
  66.         {
  67.             string n11,n16,result="";
  68.             long i=0,limit=(long)Math.Pow(2,40);
  69.             for (;i<limit;i++)
  70.             {
  71.                 n11=Translation(i.ToString(),10,11);
  72.                 n16=Translation(i.ToString(),10,16);
  73.                 if (n11==Reverse(n16))
  74.                 {
  75.                     result+=DigitsGroup(i)+"(10) = "+n11+"(11) = "+n16+"(16)\r\n";
  76.                     Console.Clear();
  77.                     Console.Write(DigitsGroup(i));
  78.                 } else {}
  79.             }
  80.             Console.Clear();
  81.             try { File.Delete("output.txt"); } catch {}
  82.             File.WriteAllText("output.txt",result);
  83.             result=null;
  84.             Console.Write("File saved\r\n");
  85.             Console.ReadLine();
  86.         }
  87.     }
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement