Advertisement
Guest User

Binary addition implementation

a guest
Aug 3rd, 2018
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.01 KB | None | 0 0
  1. public static String add(String bits1, String bits2){
  2.         bits1 = new StringBuilder(bits1).reverse().toString();
  3.         bits2 = new StringBuilder(bits2).reverse().toString();
  4.  
  5.         StringBuilder result = new StringBuilder();
  6.  
  7.         char q = '0';//for cases like: (1+1+0)=0 and 1, this (1) is stored in 1
  8.         for(int i = 0;i < bits1.length();i++){
  9.             char bit1 = bits1.charAt(i);
  10.             char bit2 = bits2.charAt(i);
  11.             if(bit1 == '0'){
  12.                 if(bit2 == '0'){
  13.                     if(q == '0'){//(0+0+0)=0 and 0
  14.                         result.append('0');
  15.                         q = '0';
  16.                     }else if(q == '1'){//(0+0+1)=1 and 0
  17.                         result.append('1');
  18.                         q = '0';
  19.                     }
  20.                 }else if(bit2 == '1'){
  21.                     if(q == '0'){//(0+1+0)=1 and 0
  22.                         result.append('1');
  23.                         q = '0';
  24.                     }else if(q == '1'){//(0+1+1)=0 and 1
  25.                         result.append('0');
  26.                         q = '1';
  27.                     }
  28.                 }
  29.             }else if(bit1 == '1'){
  30.                 if(bit2 == '0'){
  31.                     if(q == '0'){//(1+0+0)=1 and 0
  32.                         result.append('1');
  33.                         q = '0';
  34.                     }else if(q == '1'){//(1+0+1)=0 and 1
  35.                         result.append('0');
  36.                         q = '1';
  37.                     }
  38.                 }else if(bit2 == '1'){
  39.                     if(q == '0'){//(1+1+0)=0 and 1
  40.                         result.append('0');
  41.                         q = '1';
  42.                     }else if(q == '1'){//(1+1+1)=1 and 1
  43.                         result.append('1');
  44.                         q = '1';
  45.                     }
  46.                 }
  47.             }
  48.         }
  49.         if(q == '1')//for cases like: bits1=111 bit2 == 001, which equals = 1000
  50.             result.append('1');
  51.         return result.reverse().toString();
  52.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement