题目链接这里
public class Solution {
public String addBinary(String a, String b) {
StringBuilder result=new StringBuilder();
if(a.length()<b.length())
{
String temp=a;
a=b;
b=temp;
}
int tempA;
int tempB;
int tempResult;
int auxiliary=0;
for(int i=1;i<=b.length();i++)
{
tempA=a.charAt(a.length()-i)-'0';
tempB=b.charAt(b.length()-i)-'0';
tempResult=tempA+tempB+auxiliary;
switch (tempResult) {
case 3:
auxiliary=1;
tempResult=1;
break;
case 2:
auxiliary=1;
tempResult=0;
break;
case 1:
auxiliary=0;
break;
case 0:
auxiliary=0;
break;
default:
break;
}
result.append((char)(tempResult+'0'));
}
out:for(int i=a.length()-b.length()-1;i>=0;i--)
{
tempA=a.charAt(i)-'0';
tempResult=tempA+auxiliary;
switch (tempResult) {
case 2:
auxiliary=1;
tempResult=0;
break;
default:
auxiliary=0;
result.append((char)(tempResult+'0'));
while(i>=1)
{
result.append(a.charAt(i-1));
i--;
}
break out;
}
result.append((char)(tempResult+'0'));
}
if(auxiliary==1)
{
result.append('1');
}
return result.reverse().toString();
}
}
本文介绍了一种实现两个二进制字符串相加的方法。通过使用StringBuilder进行结果存储,并通过循环遍历字符串来逐位计算二进制数的加法。文章详细展示了如何处理进位以及如何将最终结果反转输出。

被折叠的 条评论
为什么被折叠?



