002.二进制加法
- 解此题关键在于给出的两数位数可能不相同,因此需要用一个add来记录前一位的进位情况
- 每一位相加都是由进位add,一个数的aEle,另一个数bEle组成
var addBinary = function(a, b) {
let aIndex = a.length - 1;
let bIndex = b.length - 1;
let add = 0;
let res = "";
while (aIndex >= 0 || bIndex >= 0 || add != 0) {
let aEle = aIndex < 0 ? 0 : Number(a[aIndex]);
let bEle = bIndex < 0 ? 0 : Number(b[bIndex]);
res = (add + aEle + bEle) % 2 + res;
add = (add + aEle + bEle) >= 2 ? 1 : 0;
aIndex --;
bIndex --;
}
return res;
};
- 基于整数的二进制加法,那么小数的二进制加法如何实现呢 ?
- 我的思路则是以小数点划分开两者,参照上面的实现分别计算去两部分的结果,再讲结果用小数点进行一个拼接