二进制求和
题目
给定两个二进制字符串,返回他们的和(用二进制表示)。
样例
a = 11 b = 1 返回 100
题解
注意正确处理二进制进位即可。
public class Solution {
/**
* @param a a number
* @param b a number
* @return the result
*/
public String
addBinary(String a, String b) {
int i = a.length() -
1;
int j = b.length() -
1;
int carries =
0;
StringBuilder result =
new StringBuilder();
while (i >=
0 || j >=
0)
{
int sum = (i >=
0 ? (
int)(a.charAt(i) -
'0'):
0) + (j >=
0 ? (
int)(b.charAt(j) -
'0'):
0) + carries;
result.insert(
0,sum %
2);
carries = sum /
2;
i--;
j--;
}
if (carries ==
1)
{
result.insert(
0,
1);
}
return result.toString();
}
}
Last Update 2016.9.16
转载请注明原文地址: https://ju.6miu.com/read-1123502.html