When two binary strings are added, then the sum returned is also a binary string.
Example:
Input : x = "10", y = "01" Output: "11" Input : x = "110", y = "011" Output: "1001" Explanation: 110 + 011 =1001
Here, we need to start adding from the right side and when the sum returned is more than one then store the carry for the next digits.
Let’s see a program in order to get the clear concept of above topic.
Example:
Java
// java program to add two binary strings public class gfg { // Function to add two binary strings static String add_Binary(String x, String y) { // Initializing result String res = "" ; // Initializing digit sum int d = 0 ; // Traversing both the strings starting // from the last characters int k = x.length() - 1 , l = y.length() - 1 ; while (k >= 0 || l >= 0 || d == 1 ) { // Computing the sum of last // digits and the carry d += ((k >= 0 ) ? x.charAt(k) - '0' : 0 ); d += ((l >= 0 ) ? y.charAt(l) - '0' : 0 ); // When the current digit's sum is either // 1 or 3 then add 1 to the result res = ( char )(d % 2 + '0' ) + res; // Computing carry d /= 2 ; // Moving to the next digits k--; l--; } return res; } // The Driver code public static void main(String args[]) { String x = "011011" , y = "1010111" ; System.out.print(add_Binary(x, y)); } } |
1110010
Attention reader! Don’t stop learning now. Get hold of all the important Java Foundation and Collections concepts with the Fundamentals of Java and Java Collections Course at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more, please refer Complete Interview Preparation Course.