| import java.util.ArrayList;import java.util.Arrays;
 import java.util.List;
 
 
 
 
 
 
 
 public class clacdemo {
 
 public static void main(String[] args) {
 String four = "00000100";
 String five = "00000101";
 System.out.println(sum(four, five));
 }
 
 
 
 
 
 
 
 
 public static String sum(String num1, String num2) {
 List<String> list = new ArrayList<>();
 
 list.add(xor(num1, num2));
 
 list.add(and(num1, num2));
 
 if (isZero(list.get(list.size() - 1))) {
 
 return list.get(list.size() - 2);
 }
 
 while (true) {
 
 list.add(carry(list.get(list.size() - 1)));
 
 list.add(xor(list.get(list.size() - 3), list.get(list.size() - 1)));
 
 list.add(and(list.get(list.size() - 4), list.get(list.size() - 2)));
 
 if (isZero(list.get(list.size() - 1))) {
 
 return list.get(list.size() - 2);
 }
 }
 }
 
 
 
 
 
 
 
 
 
 public static String xor(String num1, String num2) {
 List<String> numList1 = Arrays.asList(num1.split(""));
 List<String> numList2 = Arrays.asList(num2.split(""));
 List<String> result = new ArrayList<>();
 for (int i = 0; i < numList1.size(); i++) {
 
 if (numList1.get(i).equals(numList2.get(i))) {
 result.add("0");
 } else {
 result.add("1");
 }
 }
 return String.join("", result);
 }
 
 
 
 
 
 
 
 
 public static String and(String num1, String num2) {
 List<String> numList1 = Arrays.asList(num1.split(""));
 List<String> numList2 = Arrays.asList(num2.split(""));
 List<String> result = new ArrayList<>();
 for (int i = 0; i < numList1.size(); i++) {
 
 if ("1".equals(numList1.get(i)) && "1".equals(numList2.get(i))) {
 result.add("1");
 } else {
 result.add("0");
 }
 }
 return String.join("", result);
 }
 
 
 
 
 
 
 
 public static Boolean isZero(String num) {
 List<String> numList = Arrays.asList(num.split(""));
 for (String tempNum : numList) {
 
 if ("1".equals(tempNum)) {
 return false;
 }
 }
 return true;
 }
 
 
 
 
 
 
 
 public static String carry(String num) {
 List<String> numList = Arrays.asList(num.split(""));
 for (int i = 0; i < numList.size(); i++) {
 if ("1".equals(numList.get(i))) {
 try {
 numList.set(i - 1, "1");
 } catch (ArrayIndexOutOfBoundsException e) {
 System.out.println("溢出!");
 System.exit(0);
 }
 numList.set(i, "0");
 }
 }
 return String.join("", numList);
 }
 }
 
 |