w3resource

C++ Exercises: Compute the sum of two given binary strings

C++ Math: Exercise-22 with Solution

Write a C++ program to compute the sum of a pair of binary strings. Binary strings will be returned, and input strings shouldn't be blank or contain just 1 or 0 characters.

Sample Input: bstr1 = "10"
bstr2 = "1"
Sample Output: 10 + 1 = 11

Sample Input: bstr1 = "1100"
bstr2 = "1010"
Sample Output: 1100 + 1010 = 10110

Sample Solution:

C++ Code :

#include <iostream>

using namespace std;

// Function to add two binary strings
string binary_add(string bstr1, string bstr2) {
    // Determine the size of the result string
    int size = max(bstr1.size(), bstr2.size());
    int temp = 0;

    // Initialize an empty string to store the result
    string result_str = "";

    // Loop through each position of the binary strings and perform addition
    for (auto i = 0; i < size; ++i) {
        // Extract individual digits of binary strings
        int digit1 = (i + 1 <= bstr1.size()) ? bstr1[bstr1.size() - 1 - i] - '0' : 0;
        int digit2 = (i + 1 <= bstr2.size()) ? bstr2[bstr2.size() - 1 - i] - '0' : 0;

        // Calculate the sum of digits along with the carry
        int number = (digit1 + digit2 + temp);
        temp = number / 2;

        // Append the sum digit to the result string
        result_str = to_string(number % 2) + result_str;
    }

    // If there's a remaining carry, add it to the result
    if (temp > 0) {
        result_str = to_string(temp) + result_str;
    }

    return result_str; // Return the final result
}

// Main function to test binary_add function
int main() {
    string bstr1 = "10";
    string bstr2 = "1";
    cout << "\n" << bstr1 << " + " << bstr2 << " = " << binary_add(bstr1, bstr2) << endl;

    bstr1 = "1100";
    bstr2 = "1010";
    cout << "\n" << bstr1 << " + " << bstr2 << " = " << binary_add(bstr1, bstr2) << endl;

    bstr1 = "10";
    bstr2 = "10";
    cout << "\n" << bstr1 << " + " << bstr2 << " = " << binary_add(bstr1, bstr2) << endl;

    return 0;
}

Sample Output:

10 + 1 = 11

1100 + 1010 = 10110

10 + 10 = 100

Flowchart:

Flowchart: Compute the sum of two given binary strings

C++ Code Editor:

Contribute your code and comments through Disqus.

Previous: Write a C++ program to check if a given string is a decimal number or not.

Next: Write a C++ program to compute square root of a given non-negative integer.

What is the difficulty level of this exercise?



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://w3resource.com/cpp-exercises/math/cpp-math-exercise-22.php