Реализовать набор подпрограмм для выполнения операций над числами в шеснадцатеричной СС - C#
Формулировка задачи:
Доброго времени суток. Задача - неабходимо реализовать в виде модуля набор подпрограмм для выполнения следующих операций над натуральными числами в шеснадцатеричной системе счисления:
1) Сложения;
2) Вычитания;
3) Умножения;
4) Деления;
5) Перевода из двоичной системы счисления в шеснадцатеричную;
6) Перевода из шеснадцатиричной системы счисления в десятичную;
7) Функции проверки правильности записи числа в шеснадцатеричной системе счисления;
8) Функции реализующие операции отношения;
Простите за дурацкий лексикон и незнание основ, но
вопрос - как следует реализовать код, что бы Шарп понимал, что я работаю именно с шеснадцатеричной сс, подходил к преподу с вопросом, а можно ли переводить числа введеные скажем в text box в 10ю сс, проводить с ними необходимые операции, а затем снова переводить в 16ю сс...и затем уже выводить результат...на что она сообщила что "перехитрить самого себя" мне не удастся и что бы модуль работал именно с 16й сс...помогите, с чего начать? От чего отолкнуться?
Работает с 10й сс
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Text;
using System.Collections;
namespace ModOperaciy
{
public class Class1
{
public static int SummaFunc(int x, int y)
{
return (x + y);
}
public static int RaznostFunc(int x, int y)
{
return (x - y);
}
public static int ProizvedenieFunc(int x, int y)
{
return (x * y);
}
public static int ChastnoeFunc(int x, int y)
{
return (x / y);
}
public static string Otnoshenye(int x, int y, string z)
{
if (x == y) z = "числа равны";
else if (x > y) z = x + " больше";
else if (x < y) z = y + " больше";
return z;
}
public static long ToDec(string value, int fromBase) //Перевод в десятичную
{
const string TABLE = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
long rank = 1, result = 0;
for (var i = value.Length - 1; i >= 0; i--)
{
var index = TABLE.IndexOf(value[i]);
result += rank * index;
rank *= fromBase;
}
return result;
}
public static string DecToHex(int chislo) //Перевод из десятичной системы в шестнадцатеричную
{
string hout = "", b = "";
int q;
while (chislo > 0)
{
q = chislo % 16;
chislo = chislo / 16;
if (q >= 0 && q < 10)
b = q.ToString();
else
if (q == 10)
b = "A";
else if (q == 11)
b = "B";
else if (q == 12)
b = "C";
else if (q == 13)
b = "D";
else if (q == 14)
b = "E";
else if (q == 15)
b = "F";
hout =hout + b;
}
return new string(hout.ToCharArray().Reverse().ToArray());
}
}
}Решение задачи: «Реализовать набор подпрограмм для выполнения операций над числами в шеснадцатеричной СС»
textual
Листинг программы
{
// string s1 = "0xa";
// string s2 = "0xa";
string s1 = Console.ReadLine();
string s2 = Console.ReadLine();
int a, b;
a = int.Parse(s1);
b = int.Parse(s2);
Console.WriteLine("0x{0}", Convert.ToString(a + b, 16));
Console.ReadKey();
}