Advertisement
Guest User

Untitled

a guest
Apr 9th, 2020
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.96 KB | None | 0 0
  1. using System;
  2.  
  3. namespace ConverterApplication
  4. {
  5.  
  6.     public class StringReverser
  7.     {
  8.         public static String reverse(String x)
  9.         {
  10.             string code = "";
  11.             for (int i = x.Length; i > 0; i--)
  12.             {
  13.                 char ch = x[i - 1];
  14.                 code += ch;
  15.             }
  16.             return code;
  17.         }
  18.     }
  19.  
  20.     public interface IConverter
  21.     {
  22.         string convert();
  23.     }
  24.  
  25.  
  26.     public abstract class Converter : IConverter
  27.     {
  28.         protected string code { get; set; }
  29.         protected int value { get; set; }
  30.  
  31.         protected Converter(int value)
  32.         {
  33.             this.value = value;
  34.         }
  35.  
  36.             public string convert()
  37.         {
  38.             return converterDefinition();
  39.         }
  40.  
  41.         protected abstract string converterDefinition();
  42.     }
  43.  
  44.  
  45.  
  46.     public class BinConverter : Converter
  47.     {
  48.         public BinConverter(int value) : base(value) { }
  49.  
  50.         protected override String converterDefinition()
  51.         {
  52.             while (value > 0)
  53.             {
  54.                 int y = value % 2;
  55.                 code += y;
  56.                 value /= 2;
  57.             }
  58.             return StringReverser.reverse(code);
  59.         }
  60.     }
  61.  
  62.     public class OctConverter : Converter
  63.     {
  64.         public OctConverter(int value) : base(value) { }
  65.  
  66.         protected override String converterDefinition()
  67.         {
  68.             while (value > 0)
  69.             {
  70.                 int y = value % 8;
  71.                 code += y;
  72.                 value /= 8;
  73.             }
  74.             return StringReverser.reverse(code);
  75.         }
  76.     }
  77.  
  78.     public class HexConverter : Converter
  79.     {
  80.        
  81.         private static String[] hex =
  82.         { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F" };
  83.  
  84.         public HexConverter(int value) : base(value) { }
  85.  
  86.         protected override String converterDefinition()
  87.         {
  88.             while (value > 0)
  89.             {
  90.                 int y = value % 16;
  91.                 code += hex[y];
  92.                 value /= 16;
  93.             }
  94.             return StringReverser.reverse(code);
  95.         }
  96.     }
  97.  
  98.     public class Program
  99.     {
  100.         public static void Main(string[] args)
  101.         {
  102.             int x = int.Parse(Console.ReadLine());
  103.             Console.WriteLine("Number: " + x);
  104.  
  105.             Converter bin = new BinConverter(x);
  106.             Converter oct = new OctConverter(x);
  107.             Converter hex = new HexConverter(x);
  108.  
  109.             eqSign(12);
  110.             Console.WriteLine("Bin : " + bin.convert());
  111.             Console.WriteLine("Oct : " + oct.convert());
  112.             Console.WriteLine("Hex : " + hex.convert());
  113.             eqSign(12);
  114.         }
  115.  
  116.         static void eqSign(int x)
  117.         {
  118.             while (x != 0)
  119.             {
  120.                 Console.Write("=");
  121.                 x--;
  122.             }
  123.             Console.WriteLine();
  124.         }
  125.     }
  126. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement