Реализовать сложение двоичных чисел с использванием строк - C#
Формулировка задачи:
Сложность в том как реализовать перенос бита
static public string AddBinaryNumbers(string first_num,string second_num) { string result = ""; while (first_num.Length % 8 != 0) { first_num = "0" + first_num; } while (second_num.Length % 8 != 0) { second_num = "0" + second_num; } for(int i = first_num.Length - 1; i >= 0; i--) { if (first_num[i] == 0 ^ second_num[i] == 0) { result = "1" + result; } else if (first_num[i] == 1 && second_num[i] == 1) { } else result = "0" + result; } return result; }
Решение задачи: «Реализовать сложение двоичных чисел с использванием строк»
textual
Листинг программы
public static string AddBinaryNumbers(string f, string s) { string result = ""; int l = f.Length > s.Length ? f.Length : s.Length; f = f.PadLeft(l + 1, '0'); s = s.PadLeft(l + 1, '0'); char ostatok = '0'; for (int i = f.Length - 1; i >= 0; i--) { result = (char)(f[i]^s[i]^ostatok) + result; ostatok = (f[i] == '1' && s[i] == '1') || (f[i] == '1' && ostatok == '1') || (s[i] == '1' && ostatok == '1') ? '1' : '0'; } return result.TrimStart('0');
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д