TheAlgorithms / C-Plus-Plus

Collection of various algorithms in mathematics, machine learning, computer science and physics implemented in C++ for educational purposes.
https://thealgorithms.github.io/C-Plus-Plus
MIT License
30.82k stars 7.29k forks source link

[BUG] Incorrect Binary Addition Logic in add_strings in divide_and_conquer/karatsuba_algorithm_for_fast_multiplication.cpp #2848

Open shrivalidutt opened 1 month ago

shrivalidutt commented 1 month ago

Description

The current implementation of add_strings contains an issue with how bits are summed and inserted into the result string. The bitwise XOR and carry logic is incorrect. It incorrectly treats the sum and carry operation as a character instead of using integer arithmetic.

Expected behavior

The function add_strings is supposed to correctly sum two binary strings, handling the addition of bits along with managing carry.

Actual behavior

Instead of performing correct integer arithmetic for binary addition, the function uses bitwise XOR and character casting, leading to incorrect results.

Steps to reproduce

No response

Context

The incorrect use of XOR and char casting caused the function to fail at handling binary addition properly. This bug results in faulty summation, especially when there is a carry involved between bit positions.

Additional information

The bug causes the program to produce incorrect results for binary multiplication.

github-actions[bot] commented 1 week ago

This issue has been automatically marked as abandoned because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.