Умножение и деление двоичных чисел - C#
Формулировка задачи:
На входе:
Две строковых параметра, форматом 64 символа (нули и единицы)
Что нужно
Нужно сделать два метода возвращающих строковое значение того же формата 64 символа.
Алгоритм Умножения и деления нужно реализовать самому..
Помогите, битый день уже бьюсь, на умножении завис.. только вот это есть:
Но на выходе чушь... спасите((
private char[] MultiPart(char[] num1, char nOo)
{
char[] result = new Char[64];
if (nOo == '0')
for (int i = 0; i < 64; i++)
result[i] = '0';
else
return num1;
return result;
}
//Автомат умножения
public string Mult(string num1, string num2)
{
string result = "0000000000000000000000000000000000000000000000000000000000000000";
char[] temp;
string temp2 = "0000000000000000000000000000000000000000000000000000000000000000";
char[] cNum1 = num1.ToCharArray();
char[] cNum2 = num2.ToCharArray();
int j = 0;
result = string.Join("",MultiPart(cNum1, cNum2[63]));
for (int i = 62; i > -1; i--)
{
j++;
temp = MultiPart(cNum1, cNum2[i]);
temp2.ToCharArray()[1] = temp[0];
for (int z = 0; z < 63-j; z++)
temp[z] = temp[z + j];
for (int z = 63-j; z < 63;z++ )
temp[z] = '0';
result = Sum(result, string.Join("", temp));
result = Sum(result, temp2);
}
return result;
}Решение задачи: «Умножение и деление двоичных чисел»
textual
Листинг программы
string a = "00011";
string b = "00010"
string rez = "";
for (int i = b.Length - 1; i >= 0; i--)
{
if (b[i] == '1') rez = Add(rez, a);
a= a+'0'; // Это сдвиг
}
//rez готов. Скорректировать до 64 символов