1.题目描述
2.知识点
注1: 二进制用 %2 /2
3.思路和例子
采用竖位相加的方法
4.代码实现
class Solution {
public String addBinary(String a, String b) {
StringBuilder sb=new StringBuilder();
int i=a.length()-1;
int j=b.length()-1;
int jinwei=0;
int digit1,digit2;
while(i>=0||j>=0||jinwei!=0)//进位不为0的时候,继续循环,往sb里面再追加数字
{
if(i>=0)
{
digit1=a.charAt(i--)-'0';
}
else
{
digit1=0;
}
if(j>=0)
{
digit2=b.charAt(j--)-'0';
}
else
{
digit2=0;
}
int sum=digit1+digit2+jinwei;
//sb.append(sum%10);//十进制取余数,比如sum=6+9=15,15%10=5
// jinwei=sum/10;//十进制15/10=1
sb.append(sum%2);//二进制,1+1=10,10%2=0
jinwei=sum/2;//二进制 10/2=
}
return sb.reverse().toString();
}
}