diff --git a/task2.cpp b/task2.cpp index e60d4d7..f0bff17 100644 --- a/task2.cpp +++ b/task2.cpp @@ -4,16 +4,16 @@ #include bool* addBinary(bool* A, bool* B, int size) { - bool* result = new bool[size](); // Результат может быть на 1 бит больше - bool carry = false; // Перенос + bool* result = new bool[size](); + bool carry = false; // Перенос for (int i = size - 1; i >= 0; i--) { // Сложение с учетом переноса - bool sum = A[i] ^ B[i] ^ carry; // XOR для сложения - carry = (A[i] && B[i]) || (carry && (A[i] || B[i])); // Логика переноса - result[i + 1] = sum; // Записываем результат + bool sum = A[i] ^ B[i] ^ carry; // XOR для сложения + carry = (A[i] && B[i]) || (carry && (A[i] || B[i])); // Логика переноса + result[i + 1] = sum; // Запись результата } - result[0] = carry; // Записываем перенос в старший бит + result[0] = carry; // Записываем перенос в старший бит return result; }