View difference between Paste ID: 5hE3Jcnh and X3adrrhP
SHOW: | | - or go back to the newest paste.
1
using System;
2
using System.Collections.Generic;
3
using System.Linq;
4
using System.Text;
5
6
namespace Second___Easy
7
{
8
    class Program
9
    {
10
        static void Main(string[] args)
11
        {
12
            Console.Write("Write function (+ - * / % ^): ");
13
            string operation = Console.ReadLine();
14
            Console.Write("Write FIRST value (use prefix \"h\" for hexadecimal or \"b\" for binary number): ");
15
            string firstValue = Console.ReadLine();
16
            Console.WriteLine("Write SECOND value (use prefix \"h\" for hexadecimal or \"b\" for binary number): ");
17
            string secondValue = Console.ReadLine();
18
19
            int firstNumber = ParseNumber(firstValue);
20
            int secondNumber = ParseNumber(secondValue);
21
22
            int result;
23
            switch (operation)
24
            {
25
                case "+":
26
                    result = firstNumber + secondNumber;
27
                    break;
28
                case "-":
29
                    result = firstNumber - secondNumber;
30
                    break;
31
                case "*":
32
                    result = firstNumber * secondNumber;
33
                    break;
34
                case "/":
35
                    result = firstNumber / secondNumber;
36
                    break;
37
                default:
38
                    Console.WriteLine("Unknown operation");
39
                    return;
40
            }
41
42
            Console.WriteLine();
43
            Console.WriteLine();
44
45
            string[] firstOutput = GetAllFormats(firstNumber);
46
            string[] secondOutput = GetAllFormats(secondNumber);
47
            string[] resultOutput = GetAllFormats(result);
48
49
            Console.WriteLine("In decimal");
50
            Console.WriteLine("{0} {1} {2} = {3}", firstOutput[0], operation, secondOutput[0], resultOutput[0]);
51
            Console.WriteLine();
52
            Console.WriteLine("In binary");
53
            Console.WriteLine("{0} {1} {2} = {3}", firstOutput[1], operation, secondOutput[1], resultOutput[1]);
54
            Console.WriteLine();
55
            Console.WriteLine("In hexadecimal");
56
            Console.WriteLine("{0} {1} {2} = {3}", firstOutput[2], operation, secondOutput[2], resultOutput[2]);
57
            Console.WriteLine();
58
59
            Console.ReadKey();
60
        }
61
62
        private static string[] GetAllFormats(int result)
63
        {
64
            string[] retVal = new string[3];
65
            retVal[0] = result.ToString();
66
            retVal[1] = Convert.ToString(result, 2);
67
            retVal[2] = Convert.ToString(result, 16);
68
            return retVal;
69
        }
70
71
        private static int ParseNumber(string value)
72
        {
73
            if (value[0] == 'b' || value[0] == 'B')
74
            {
75
                value = value.Substring(1);
76
                return Convert.ToInt32(value, 2);
77
            }
78
79
            if (value[0] == 'h' || value[0] == 'H') 
80
            {
81
                value = value.Substring(1);
82
                return Convert.ToInt32(value, 16);
83
            }
84
85
            return int.Parse(value);
86
        }
87
    }
88
}