Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static String add(String bits1, String bits2){
- bits1 = new StringBuilder(bits1).reverse().toString();
- bits2 = new StringBuilder(bits2).reverse().toString();
- StringBuilder result = new StringBuilder();
- char q = '0';//for cases like: (1+1+0)=0 and 1, this (1) is stored in 1
- for(int i = 0;i < bits1.length();i++){
- char bit1 = bits1.charAt(i);
- char bit2 = bits2.charAt(i);
- if(bit1 == '0'){
- if(bit2 == '0'){
- if(q == '0'){//(0+0+0)=0 and 0
- result.append('0');
- q = '0';
- }else if(q == '1'){//(0+0+1)=1 and 0
- result.append('1');
- q = '0';
- }
- }else if(bit2 == '1'){
- if(q == '0'){//(0+1+0)=1 and 0
- result.append('1');
- q = '0';
- }else if(q == '1'){//(0+1+1)=0 and 1
- result.append('0');
- q = '1';
- }
- }
- }else if(bit1 == '1'){
- if(bit2 == '0'){
- if(q == '0'){//(1+0+0)=1 and 0
- result.append('1');
- q = '0';
- }else if(q == '1'){//(1+0+1)=0 and 1
- result.append('0');
- q = '1';
- }
- }else if(bit2 == '1'){
- if(q == '0'){//(1+1+0)=0 and 1
- result.append('0');
- q = '1';
- }else if(q == '1'){//(1+1+1)=1 and 1
- result.append('1');
- q = '1';
- }
- }
- }
- }
- if(q == '1')//for cases like: bits1=111 bit2 == 001, which equals = 1000
- result.append('1');
- return result.reverse().toString();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement