Умножение и деление двоичных чисел - 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 символов
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д