Adding binary numbers
Asked Answered
T

25

23

Does anyone know how to add 2 binary numbers, entered as binary, in Java?

For example, 1010 + 10 = 1100.

Trygve answered 17/12, 2011 at 23:5 Comment(3)
@twiddles No more homework tagging! :)Bantustan
This may blow your mind. You can write C code in java. C is lower-level and you can do binary arithmetic with it. It's late, so I'm not writing out a sample, but you can look it up.Replete
This is more likely to be a leetcode question I guess. I came accross this question here: leetcode.com/problems/add-binaryCornew
H
56

Use Integer.parseInt(String, int radix).

 public static String addBinary(){
 // The two input Strings, containing the binary representation of the two values:
    String input0 = "1010";
    String input1 = "10";

    // Use as radix 2 because it's binary    
    int number0 = Integer.parseInt(input0, 2);
    int number1 = Integer.parseInt(input1, 2);

    int sum = number0 + number1;
    return Integer.toBinaryString(sum); //returns the answer as a binary value;
}
Houri answered 17/12, 2011 at 23:8 Comment(6)
wow. it worked! thanks bro. but i was wondering if you could explain why?Trygve
Integer is a class, which contains a method to parse a string which represents an integer to its real integer value (int). You can take a look at the link I provided you.Houri
Martin - it does not show the answer in binary. How do we do that?Guyette
@Abhishekkumar just use Integer.toBinaryString(sum);Antechamber
This can throw java.lang.NumberFormatException: For input string: "10100000100100110110010000010101111011011001101110111111111101000000101111001110001111100001101" "110101001011101110001111100110001010100001101011101010000011011011001011101111001100000011011110011"K
@K which makes sense since the max int value is 2,147,483,647 and the (first) binary value translates to 24,847,893,154,024,981,730,169,397,005Hugely
F
32

To dive into fundamentals:

public static String binaryAddition(String s1, String s2) {
    if (s1 == null || s2 == null) return "";
    int first = s1.length() - 1;
    int second = s2.length() - 1;
    StringBuilder sb = new StringBuilder();
    int carry = 0;
    while (first >= 0 || second >= 0) {
        int sum = carry;
        if (first >= 0) {
            sum += s1.charAt(first) - '0';
            first--;
        }
        if (second >= 0) {
            sum += s2.charAt(second) - '0';
            second--;
        }
        carry = sum >> 1;
        sum = sum & 1;
        sb.append(sum == 0 ? '0' : '1');
    }
    if (carry > 0)
        sb.append('1');

    sb.reverse();
    return String.valueOf(sb);
}
Flipflop answered 7/3, 2014 at 18:16 Comment(3)
@Serhanbaker Could you please explain, sum += s1.charAt(first) - '0'; bit. ThanksLocarno
this should be accepted answer, since the first answer doesn't work with large valuesCitrange
@Locarno check this out: Java: Subtract '0' from char to get an int... why does this work?.Gerhan
R
13

Martijn is absolutely correct, to piggyback and complete the answer

Integer.toBinaryString(sum);

would give your output in binary as per the OP question.

Roasting answered 17/12, 2011 at 23:51 Comment(0)
A
9

You can just put 0b in front of the binary number to specify that it is binary.

For this example, you can simply do:

Integer.toString(0b1010 + 0b10, 2);

This will add the two in binary, and Integer.toString() with 2 as the second parameter converts it back to binary.

Artois answered 20/5, 2014 at 17:11 Comment(2)
Binary literals are allowed in java 7 too, see docs.oracle.com/javase/specs/jls/se7/html/jls-3.html#jls-3.10.1Arrangement
This should be the correct answer; no reason to convert to strings or roll your own solution.Steinke
D
6

The original solution by Martijn will not work for large binary numbers. The below code can be used to overcome that.

public String addBinary(String s1, String s2) {
    StringBuilder sb = new StringBuilder();
    int i = s1.length() - 1, j = s2.length() -1, carry = 0;
    while (i >= 0 || j >= 0) {
        int sum = carry;
        if (j >= 0) sum += s2.charAt(j--) - '0';
        if (i >= 0) sum += s1.charAt(i--) - '0';
        sb.append(sum % 2);
        carry = sum / 2;
    }
    if (carry != 0) sb.append(carry);
    return sb.reverse().toString();
}
Derose answered 25/7, 2017 at 5:48 Comment(1)
it works from me large binary numbers.Frizzly
M
2
public class BinaryArithmetic {

    /*-------------------------- add ------------------------------------------------------------*/
    static String add(double a, double b) {
        System.out.println(a + "first val :" + b);
        int a1 = (int) a;
        int b1 = (int) b;
        String s1 = Integer.toString(a1);
        String s2 = Integer.toString(b1);
        int number0 = Integer.parseInt(s1, 2);
        int number1 = Integer.parseInt(s2, 2);

        int sum = number0 + number1;
        String s3 = Integer.toBinaryString(sum);

        return s3;
    }
    /*-------------------------------multiply-------------------------------------------------------*/

    static String multiply(double a, double b) {
        System.out.println(a + "first val :" + b);
        int a1 = (int) a;
        int b1 = (int) b;
        String s1 = Integer.toString(a1);
        String s2 = Integer.toString(b1);
        int number0 = Integer.parseInt(s1, 2);
        int number1 = Integer.parseInt(s2, 2);

        int sum = number0 * number1;
        String s3 = Integer.toBinaryString(sum);

        return s3;
    }
    /*----------------------------------------substraction----------------------------------------------*/

    static String sub(double a, double b) {
        System.out.println(a + "first val :" + b);
        int a1 = (int) a;
        int b1 = (int) b;
        String s1 = Integer.toString(a1);
        String s2 = Integer.toString(b1);
        int number0 = Integer.parseInt(s1, 2);
        int number1 = Integer.parseInt(s2, 2);

        int sum = number0 - number1;
        String s3 = Integer.toBinaryString(sum);

        return s3;
    }

    /*--------------------------------------division------------------------------------------------*/
    static String div(double a, double b) {
        System.out.println(a + "first val :" + b);
        int a1 = (int) a;
        int b1 = (int) b;
        String s1 = Integer.toString(a1);
        String s2 = Integer.toString(b1);
        int number0 = Integer.parseInt(s1, 2);
        int number1 = Integer.parseInt(s2, 2);

        int sum = number0 / number1;
        String s3 = Integer.toBinaryString(sum);

        return s3;
    }
}
Mason answered 29/5, 2013 at 21:16 Comment(0)
G
2

Another interesting but long approach is to convert each of the two numbers to decimal, adding the decimal numbers and converting the answer obtained back to binary!

Germainegerman answered 18/2, 2014 at 14:29 Comment(0)
D
2

Java solution

static String addBinary(String a, String b) {

    int lenA = a.length();
    int lenB = b.length();
    int i = 0;

    StringBuilder sb = new StringBuilder();
    int rem = Math.abs(lenA-lenB);
    while(rem >0){
        sb.append('0');
        rem--;
    }
    if(lenA > lenB){
        sb.append(b);  
        b = sb.toString();
    }else{
        sb.append(a);
        a = sb.toString();
    }

    sb = new StringBuilder();
    char carry = '0';
    i = a.length();
    while(i > 0){
        if(a.charAt(i-1) == b.charAt(i-1)){
            sb.append(carry);
            if(a.charAt(i-1) == '1'){
                carry = '1';
            }else{
                carry = '0';
            }
        }else{
            if(carry == '1'){
                sb.append('0');
                carry = '1';
            }else{
                carry = '0';
                sb.append('1');
            }
        }
        i--;
    }

    if(carry == '1'){
        sb.append(carry);
    }

    sb.reverse();
    return sb.toString();

}
Daron answered 19/2, 2016 at 3:7 Comment(0)
B
2
public String addBinary(String a, String b) { 
    int carry = 0;
    StringBuilder sb = new StringBuilder();
    for(int i = a.length() - 1, j = b.length() - 1;i >= 0 || j >= 0;i--,j--){
        int sum = carry + (i >= 0 ? a.charAt(i) - '0':0) + (j >= 0 ? b.charAt(j) - '0' : 0);
        sb.append(sum%2);
        carry =sum / 2;
    }
    if(carry > 0) sb.append(carry);
    sb.reverse();
    return sb.toString();
}
Barretter answered 27/3, 2020 at 21:24 Comment(1)
Explanation please?Rameau
M
1

I've actually managed to find a solution to this question without using the stringbuilder() function. Check this out:

public void BinaryAddition(String s1,String s2)
{
    int l1=s1.length();int c1=l1;
    int l2=s2.length();int c2=l2;
    int max=(int)Math.max(l1,l2);
    int arr1[]=new int[max];
    int arr2[]=new int[max];
    int sum[]=new int[max+1];
    for(int i=(arr1.length-1);i>=(max-l1);i--)
    {
        arr1[i]=(int)(s1.charAt(c1-1)-48);
        c1--;
    }
    for(int i=(arr2.length-1);i>=(max-l2);i--)
    {
        arr2[i]=(int)(s2.charAt(c2-1)-48);
        c2--;
    }
    for(int i=(sum.length-1);i>=1;i--)
    {
        sum[i]+=arr1[i-1]+arr2[i-1];
        if(sum[i]==2)
        {
            sum[i]=0;
            sum[i-1]=1;
        }
        else if(sum[i]==3)
        {
            sum[i]=1;
            sum[i-1]=1;
        }
    }
    int c=0;
    for(int i=0;i<sum.length;i++)
    {
        System.out.print(sum[i]);
    }
}
Macule answered 16/10, 2015 at 14:7 Comment(0)
B
1

The idea is same as discussed in few of the answers, but this one is a much shorter and easier to understand solution (steps are commented).

// Handles numbers which are way bigger.
public String addBinary(String a, String b) {
    StringBuilder sb = new StringBuilder();
    int i = a.length() - 1; 
    int j = b.length() -1;
    int carry = 0;
    while (i >= 0 || j >= 0) {
        int sum = carry;
        if (j >= 0) { sum += b.charAt(j--) - '0' };
        if (i >= 0) { sum += a.charAt(i--) - '0' };

        // Added number can be only 0 or 1
        sb.append(sum % 2);

        // Get the carry.
        carry = sum / 2;
    }

    if (carry != 0) { sb.append(carry); }

    // First reverse and then return.
    return sb.reverse().toString();
}
Bedfordshire answered 17/8, 2019 at 6:43 Comment(0)
R
0

i tried to make it simple this was sth i had to deal with with my cryptography prj its not efficient but i hope it

    public String binarysum(String a, String b){
    int carry=0;
    int maxim;
    int minim;
    maxim=Math.max(a.length(),b.length());
    minim=Math.min(a.length(),b.length());         
    char smin[]=new char[minim];
    char smax[]=new char[maxim];
    if(a.length()==minim){
     for(int i=0;i<smin.length;i++){
     smin[i]=a.charAt(i);
      }
      for(int i=0;i<smax.length;i++){
       smax[i]=b.charAt(i);
      }
      }
      else{
          for(int i=0;i<smin.length;i++){
          smin[i]=b.charAt(i);
             }
       for(int i=0;i<smax.length;i++){
       smax[i]=a.charAt(i);
      } 
      }
    char[]sum=new char[maxim];
    char[] st=new char[maxim];
    for(int i=0;i<st.length;i++){
    st[i]='0';
    }
    int k=st.length-1;
   for(int i=smin.length-1;i>-1;i--){
    st[k]=smin[i];
    k--;
    } 

     //   *************************** sum begins here
   for(int i=maxim-1;i>-1;i--){
   char x= smax[i];
   char y= st[i];
    if(x==y && x=='0'){
         if(carry==0)
             sum[i]='0';
         else if(carry==1){
             sum[i]='1';
             carry=0;
    }
   }
    else if(x==y && x=='1'){
        if(carry==0){
            sum[i]='0';
            carry=1;
        }
        else if(carry==1){
          sum[i]='1';
          carry=1;
        }
     }
     else if(x!=y){
        if(carry==0){
            sum[i]='1';
            }
        else if(carry==1){
          sum[i]='0';
          carry=1;
        }
       }        }
      String s=new String(sum);
     return s;
      }
Ratter answered 20/5, 2014 at 15:54 Comment(0)
V
0
class Sum{
    public int number;
    public int carry;

    Sum(int number, int carry){
        this.number = number; 
        this.carry = carry;
    }
}

public String addBinary(String a, String b) {

    int lengthOfA = a.length();
    int lengthOfB = b.length();

    if(lengthOfA > lengthOfB){
        for(int i=0; i<(lengthOfA - lengthOfB); i++){
            b="0"+b;
        }
    }
    else{
         for(int i=0; i<(lengthOfB - lengthOfA); i++){
            a="0"+a;
        }
    }

    String result = "";
    Sum s = new Sum(0,0);
    for(int i=a.length()-1; i>=0; i--){
        s = addNumber(Character.getNumericValue(a.charAt(i)), Character.getNumericValue(b.charAt(i)), s.carry);
        result = result + Integer.toString(s.number);
    }

    if(s.carry == 1) { result += s.carry ;}

    return new StringBuilder(result).reverse().toString();
}

Sum addNumber(int number1, int number2, int carry){
        Sum sum = new Sum(0,0);
        sum.number = number1 ^ number2 ^ carry;
        sum.carry = (number1 & number2) | (number2 & carry) | (number1 & carry);

        return sum;
}
Vial answered 12/6, 2016 at 7:17 Comment(0)
T
0
import java.util.*;
public class BitAddition {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner sc = new Scanner(System.in);
        int len = sc.nextInt();
        int[] arr1 = new int[len];
        int[] arr2 = new int[len];
        int[] sum = new int[len+1];
        Arrays.fill(sum, 0);
        for(int i=0;i<len;i++){
            arr1[i] =sc.nextInt();
        }
        for(int i=0;i<len;i++){
            arr2[i] =sc.nextInt();
        }
        for(int i=len-1;i>=0;i--){
            if(sum[i+1] == 0){
                if(arr1[i]!=arr2[i]){
                    sum[i+1] = 1;
                }
                else if(arr1[i] ==1 && arr2[i] == 1){
                    sum[i+1] =0 ;
                    sum[i] = 1;
                }
            }
            else{
                if((arr1[i]!=arr2[i])){
                    sum[i+1] = 0;
                    sum[i] = 1;
                }
                else if(arr1[i] == 1){
                    sum[i+1] = 1;
                    sum[i] = 1;
                }
            }
        }
        for(int i=0;i<=len;i++){

        System.out.print(sum[i]);
        }
    }

}
Trapeziform answered 14/7, 2016 at 17:51 Comment(0)
C
0

One of the simple ways is as:

  1. convert the two strings to char[] array and set carry=0.
  2. set the smallest array length in for loop
  3. start for loop from the last index and decrement it
  4. check 4 conditions(0+0=0, 0+1=1, 1+0=1, 1+1=10(carry=1)) for binary addition for each element in both the arrays and reset the carry accordingly.
  5. append the addition in stringbuffer
  6. append rest of the elements from max size array to stringbuffer but check consider carry while appending
  7. print stringbuffer in reverse order for the answer.

//The java code is as

static String binaryAdd(String a, String b){
    int len = 0;
    int size = 0;
    char[] c1 = a.toCharArray();
    char[] c2 = b.toCharArray();
    char[] max;


    if(c1.length > c2.length){
        len = c2.length;
        size = c1.length;
        max = c1;
    }       
    else
    {
        len = c1.length;
        size = c2.length;
        max = c2;
    }

    StringBuilder sb = new StringBuilder();
    int carry = 0;
    int p = c1.length - 1;
    int q = c2.length - 1;

    for(int i=len-1; i>=0; i--){
        if(c1[p] == '0' && c2[q] == '0'){
            if(carry == 0){
                sb.append(0);
                carry = 0;
            }   
            else{
                sb.append(1);
                carry = 0;
            }   
        }
        if((c1[p] == '0' && c2[q] == '1') || (c1[p] == '1' && c2[q] == '0')){
            if(carry == 0){
                sb.append(1);
                carry = 0;
            }   
            else{
                sb.append(0);
                carry = 1;
            }                   
        }
        if((c1[p] == '1' && c2[q] == '1')){
            if(carry == 0){
                sb.append(0);
                carry = 1;
            }   
            else{
                sb.append(1);
                carry = 1;
            }
        }
        p--;
        q--;
    }

    for(int j = size-len-1; j>=0; j--){
        if(max[j] == '0'){ 
            if(carry == 0){     
                sb.append(0);
                carry = 0;
            }   
            else{
                sb.append(1);
                carry = 0;
            }   
        }
        if(max[j] == '1'){
            if(carry == 0){     
                sb.append(1);
                carry = 0;
            }   
            else{
                sb.append(0);
                carry = 1;
            }   
        }           
    }
    if(carry == 1)
        sb.append(1);   
    return sb.reverse().toString();
}
Centesimal answered 17/5, 2017 at 19:37 Comment(0)
T
0
import java.io.; 
import java.util.; 
public class adtbin {
  static Scanner sc=new Scanner(System.in); 
   public void fun(int n1) {
      int i=0; 
      int sum[]=new int[20]; 
      while(n1>0) { 
        sum[i]=n1%2; n1=n1/2; i++; 
      } 
      for(int a=i-1;a>=0;a--) { 
          System.out.print(sum[a]); 
      }  
   } 
   public static void main() { 
     int m,n,add; 
     adtbin ob=new adtbin(); 
     System.out.println("enter the value of m and n"); 
     m=sc.nextInt(); 
     n=sc.nextInt(); 
     add=m+n; 
     ob.fun(add); 
   } 
}
Tarver answered 16/9, 2017 at 5:2 Comment(1)
a bit of explanation is welcome with code. code only answers might be flagged as "low quality" and removed, even if they are technically valid.Deguzman
F
0

you can write your own One.

long a =100011111111L;
long b =1000001111L;

int carry = 0 ;
long result = 0;

long multiplicity = 1;

while(a!=0 || b!=0 || carry ==1){
    if(a%10==1){
        if(b%10==1){
            result+= (carry*multiplicity);
            carry = 1;
        }else if(carry == 1){
            carry = 1;  
        }else{
            result += multiplicity;
        }
    }else if (b%10 == 1){
        if(carry == 1){
            carry = 1;
        }else {
            result += multiplicity; 
        }
    }else {
        result += (carry*multiplicity);
        carry = 0;
    }

    a/=10;
    b/=10;
    multiplicity *= 10;

}


System.out.print(result);

it works just by numbers , no need string , no need SubString and ...

Fortran answered 3/11, 2017 at 7:50 Comment(0)
T
0
package Assignment19thDec;

import java.util.Scanner;

public class addTwoBinaryNumbers {

    private static Scanner sc;

    public static void main(String[] args) {

        sc = new Scanner(System.in);
        System.out.println("Enter 1st Binary Number");
        int number1=sc.nextInt();
        int reminder1=0;
        int number2=sc.nextInt();
        int reminder2=0;
        int carry=0;
        double sumResult=0 ;int add = 0
        ;
        int n;
        int power=0;
        while (number1>0 || number2>0) {

            /*System.out.println(number1 + " " +number2);*/

            reminder1=number1%10;
            number1=number1/10;
            reminder2=number2%10;
            number2=number2/10;
            /*System.out.println(reminder1 +"  "+ reminder2);*/


            if(reminder1>1 || reminder2>1 ) {
                System.out.println("not a binary number");
                System.exit(0);
            }

            n=reminder1+reminder2+carry;
            switch(n) {

            case 0: 
                    add=0; carry=0;                                 
                    break;                  
            case 1: add=1; carry=0;
                    break;
            case 2: add=0; carry=1;
                    break;
            case 3: add=1;carry=1;
                    break;
            default: System.out.println("not a binary number ");

            }

            sumResult=add*(Math.pow(10, power))+sumResult;
            power++;


        }

        sumResult=carry*(Math.pow(10, power))+sumResult;
        System.out.println("\n"+(int)sumResult);


    }

}
Toast answered 5/1, 2018 at 14:35 Comment(1)
I think a little explanation will help tooRato
M
0
Try this, tested with binary and decimal and its self explanatory

public String add(String s1, String s2, int radix){
        int s1Length = s1.length();
        int s2Length = s2.length();
        int reminder = 0;
        int carry = 0;
        StringBuilder result = new StringBuilder();
        int i = s1Length -1;
        int j = s2Length -1;
        while (i >=0 && j>=0) {
            int operand1 = Integer.valueOf(s1.charAt(i)+"");
            int operand2 = Integer.valueOf(s2.charAt(j)+"");
            reminder = (operand1+operand2+carry) % radix;
            carry = (operand1+operand2+carry) / radix;
            result.append(reminder);
            i--;j--;
        }
        while(i>=0){
            int operand1 = Integer.valueOf(s1.charAt(i)+"");
            reminder = (operand1+carry) % radix;
            carry = (operand1+carry) / radix;
            result.append(reminder);
            i--;
        }
        while(j>=0){
            int operand1 = Integer.valueOf(s2.charAt(j)+"");
            reminder = (operand1+carry) % radix;
            carry = (operand1+carry) / radix;
            result.append(reminder);
            j--;
        }
        return result.reverse().toString();
    }
}
Moersch answered 3/10, 2019 at 14:22 Comment(0)
P
0
static int addBinaryNumbers(String a, String b) {
    int firstToDecimal = 0;
    int secondToDecimal = 0;
    for (int i = a.length() - 1, count = 0; i >= 0; i--, count++) {
        firstToDecimal += (Math.pow(2, count) * Integer.parseInt(String.valueOf(a.toCharArray()[i])));

    }
    for (int i = b.length() - 1, count = 0; i >= 0; i--, count++) {
        secondToDecimal += (Math.pow(2, count) * Integer.parseInt(String.valueOf(b.toCharArray()[i])));

    }
    return firstToDecimal + secondToDecimal;
}

public static void main(String[] args) {
    System.out.println(addBinaryNumbers("101", "110"));

}
Pug answered 9/12, 2022 at 1:57 Comment(0)
E
0
  • For future leetcoders looking to see if any builtin methods exist to overcome the hassle of converting it, you're at the right place.
  • And we'll have to import & instantiate before using it, since I think leetcode doesn't allow the usage of static classes directly.
    // Use BigInteger to convert the string to binary.
    // BigInteger is used when long with range [-2^63, 2^63 - 1] 
    // couldn't handle the given number

    BigInteger(String s, int radix);

    // Where s is the input string & radix in this case would be 2 for binary

BigInteger Java docs - link here

Leetcode Challenge: https://leetcode.com/problems/add-binary/

Ethylene answered 14/12, 2023 at 7:43 Comment(0)
M
0
import java.util.Scanner;

public class Test 
{
    public static void main(String args[]) 
    {
        Scanner sc=new Scanner(System.in);
        int b1,b2;
        b1=sc.nextInt();
        b2=sc.nextInt();
        sc.close();
        System.out.println(add(b1,b2));
    }
    static int add(int b1, int b2)
    {
        
        int l1,l2,c=0;
        StringBuilder str=new StringBuilder();
        while(b1>0 || b2>0)
        {
            l1=b1%2;
            l2=b2%2;
            if(l1+l2+c==3)
            {
                str.append(1);
                c=1;
            }
            else if(l1+l2+c==2)
            {
                str.append(0);
                c=1;
                
            }
            else if(l1+l2+c==1)
            {
                str.append(1);
                c=0;
            }
            else if(l1+l2+c==0)
            {
                str.append(0);
                c=0;
            }
            b1/=10;
            b2/=10;
        }
        str.append(c);
        str= new StringBuilder(str.toString()).reverse();
        return Integer.parseInt(str.toString());
    }
}

Legend:

c-> carry

b1,b2 -> binary numbers

l1,l2 -> last digits

Constraints : It can't add binary numbers which are greater than 1023, cause of the max size of int is 2^31.

Montcalm answered 17/12, 2023 at 4:48 Comment(0)
A
0

To handle large numbers use BigInteger -

public String addBinary(String a, String b) {
        java.math.BigInteger fNum = new java.math.BigInteger(a, 2);
        java.math.BigInteger sNum = new java.math.BigInteger(b, 2);

        return fNum.add(sNum).toString(2);
    }
Altonaltona answered 6/7 at 22:20 Comment(0)
M
-1

here's a python version that

def binAdd(s1, s2):
    if not s1 or not s2:
        return ''

    maxlen = max(len(s1), len(s2))


    s1 = s1.zfill(maxlen)
    s2 = s2.zfill(maxlen)

    result  = ''
    carry   = 0

    i = maxlen - 1
    while(i >= 0):
        s = int(s1[i]) + int(s2[i])
        if s == 2: #1+1
            if carry == 0:
                carry = 1
                result = "%s%s" % (result, '0')
            else:
                result = "%s%s" % (result, '1')
        elif s == 1: # 1+0
            if carry == 1:
                result = "%s%s" % (result, '0')
            else:
                result = "%s%s" % (result, '1')
        else: # 0+0
            if carry == 1:
                result = "%s%s" % (result, '1')
                carry = 0   
            else:
                result = "%s%s" % (result, '0') 

        i = i - 1;

    if carry>0:
        result = "%s%s" % (result, '1')
    return result[::-1]
Menorca answered 16/11, 2014 at 4:35 Comment(1)
Question specifically says Java.Askins
M
-2
import java.util.Scanner;
{
    public static void main(String[] args) 
    {
        String b1,b2;
        Scanner sc= new Scanner(System.in);
        System.out.println("Enter 1st binary no. : ") ;
        b1=sc.next();
        System.out.println("Enter 2nd binary no. : ") ;
        b2=sc.next();
        int num1=Integer.parseInt(b1,2);
        int num2=Integer.parseInt(b2,2);
        int sum=num1+num2;
        System.out.println("Additon is : "+Integer.toBinaryString(sum));
    }

}

Manicotti answered 7/6, 2019 at 19:6 Comment(1)
please add details to your answerLilla

© 2022 - 2024 — McMap. All rights reserved.