Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace _7.SToD
- {
- class SToD
- {
- static void Main(string[] args)
- {
- Console.Write("Enter s=?\b");
- int s = int.Parse(Console.ReadLine());
- Console.Write("Enter d=?\b");
- int d = int.Parse(Console.ReadLine());
- if (s==2 && d == 10)
- {
- BinToDec();
- }
- else if (s == 2 && d == 16)
- {
- BinToHex();
- }
- else if (s == 10 && d == 2)
- {
- DecToBin();
- }
- else if (s == 10 && d == 16)
- {
- DecToHex();
- }
- else if (s==16 && d == 10)
- {
- HexToDec();
- }
- else if(s == 16 && d == 2)
- {
- HexToBin();
- }
- }
- private static void BinToDec()
- {
- string binNumber = InputNumberAsString();
- double dec = new int();
- char[] bin = binNumber.ToCharArray();
- for (int i = bin.Length - 1; i >= 0; i--)
- {
- if (bin[i] != '0')
- {
- dec += Math.Pow(2, i);
- }
- }
- Console.WriteLine(dec);
- }
- //Първия метод за методите,в които се въвежда число в 16-на бройна система
- private static string InputNumberAsString()
- {
- Console.Write("Enter number to convert:");
- string number = Console.ReadLine();
- return number;
- }
- private static void BinToHex()
- {
- //Въвеждането е изкарано в отделен метод. Така няма нужда да преписваш един и
- //същи код постоянно.
- string binNumber = InputNumberAsString();
- string result = "";
- for (int i = 0; i < binNumber.Length; i += 4)
- {
- switch (binNumber.Substring(i, 4))
- {
- case "0000":
- result += "0";
- break;
- case "0001":
- result += "1";
- break;
- case "0010":
- result += "2";
- break;
- case "0011":
- result += "3";
- break;
- case "0100":
- result += "4";
- break;
- case "0101":
- result += "5";
- break;
- case "0110":
- result += "6";
- break;
- case "0111":
- result += "";
- break;
- case "1000":
- result += "8";
- break;
- case "1001":
- result += "9";
- break;
- case "1010":
- result += "A";
- break;
- case "1011":
- result += "B";
- break;
- case "1100":
- result += "C";
- break;
- case "1101":
- result += "D";
- break;
- case "1110":
- result += "E";
- break;
- case "1111":
- result += "F";
- break;
- default:
- result += "";
- break;
- }
- }
- Console.WriteLine(result);
- }
- private static void DecToBin()
- {
- //Това е вторият метод, но може и само един метод а " парсването да извършваш тук"
- int num = InputNumber();
- StringBuilder result = new StringBuilder();
- int counter = 0;
- int testNum = num;
- while (testNum != 0)
- {
- testNum = testNum >> counter;
- counter++;
- }
- while (counter >= 0)
- {
- result.Append((num & (1 << counter)) >> counter);
- counter--;
- }
- result.Remove(0, 1);
- Console.WriteLine(result);
- }
- private static void DecToHex()
- {
- int num = InputNumber();
- StringBuilder hexNum = new StringBuilder();
- while (num > 1)
- {
- int temp = num % 16;
- if (temp > 9)
- {
- switch (temp)
- {
- case 10:
- hexNum.Append('A');
- break;
- case 11:
- hexNum.Append('B');
- break;
- case 12:
- hexNum.Append('C');
- break;
- case 13:
- hexNum.Append('D');
- break;
- case 14:
- hexNum.Append('E');
- break;
- case 15:
- hexNum.Append('F');
- break;
- }
- }
- else
- {
- hexNum.Append(temp);
- }
- num /= 16;
- }
- for (int i = hexNum.Length - 1; i >= 0; i--)
- {
- Console.Write(hexNum[i]);
- }
- }
- //Втория метод - са число в 10-на бройна система
- private static int InputNumber()
- {
- Console.Write("Enter number to convert:");
- int num = int.Parse(Console.ReadLine());
- return num;
- }
- private static void HexToDec()
- {
- string hexNumber = InputNumberAsString();
- int power = hexNumber.Length - 1;
- int digit = 0;
- double result = 0;
- for (int i = 0; i < hexNumber.Length; i++)
- {
- switch (hexNumber[i])
- {
- case 'A':
- digit = 10;
- break;
- case 'B':
- digit = 11;
- break;
- case 'C':
- digit = 12;
- break;
- case 'D':
- digit = 13;
- break;
- case 'E':
- digit = 14;
- break;
- case 'F':
- digit = 15;
- break;
- default:
- digit = int.Parse(hexNumber[i].ToString());
- break;
- }
- result += digit * Math.Pow(16, power);
- power--;
- }
- Console.WriteLine(result);
- }
- private static void HexToBin()
- {
- string hexNumber = InputNumberAsString();
- string result = "";
- for (int i = 0; i < hexNumber.Length; i++)
- {
- switch (hexNumber.Substring(i, 1))
- {
- case "0":
- result += "0000";
- break;
- case "1":
- result += "0001";
- break;
- case "2":
- result += "0010";
- break;
- case "3":
- result += "0011";
- break;
- case "4":
- result += "0100";
- break;
- case "5":
- result += "0101";
- break;
- case "6":
- result += "0110";
- break;
- case "7":
- result += "0111";
- break;
- case "8":
- result += "1000";
- break;
- case "9":
- result += "1001";
- break;
- case "A":
- result += "1010";
- break;
- case "B":
- result += "1011";
- break;
- case "C":
- result += "1100";
- break;
- case "D":
- result += "1101";
- break;
- case "E":
- result += "1110";
- break;
- case "F":
- result += "1111";
- break;
- default:
- result += "";
- break;
- }
- }
- Console.WriteLine(result.TrimStart(' ', '0'));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement