public class BinaryAdd {
/**
* @param a 第一个要加的二进制字符串
* @param b 第二个要加的二进制字符串
* @return
*/
// String:不可变字符序列(操作少量的数据用 String)
// StringBuilder:可变字符序列、效率高、线程不安全(单线程操作字符串缓冲区下操作大量数据 StringBuilder)
// StringBuffer:可变字符序列、效率低、线程安全(多线程操作字符串缓冲区下操作大量数据 StringBuffer)
public static String addBinary(String a, String b) {
StringBuilder result = new StringBuilder();
int i = a.length() - 1;
int j = b.length() - 1;
int carry = 0;
while (i >= 0 || j >= 0) {
int digitA = i >= 0 ? a.charAt(i--) - '0' : 0;
int digitB = j >= 0 ? b.charAt(j--) - '0' : 0;
int sum = digitA + digitB + carry;
carry = sum >= 2 ? 1 : 0;
sum = sum >= 2 ? sum - 2 : sum;
result.append(sum);
}
if(carry==1){
result.append(carry);
}
return result.reverse().toString();
}
public static void main(String[] args) {
String a = "0001010";
String b = "1001";
String result = addBinary(a, b);
System.out.println(result);
}
}
java实现字符串二进制的加法
最新推荐文章于 2022-04-16 10:14:20 发布