二進位制加法的JavaScript實現
阿新 • • 發佈:2018-12-24
二進位制字串的加法,和十進位制的大整數加法很相似。
只不過一個是逢2進1,另一個是逢10進1。
所以,實現起來也比較簡單。
不過,一般要考慮,如果字串以0開頭的情況,擷取掉。
我的實現,沒有考慮這點。
/** * @param {string} a * @param {string} b * @return {string} */ var addBinary = function(a, b) { var res = []; //是否進位 var addOne = 0; //字串對齊 while(a.length < b.length){ a = "0" + a; } while(b.length < a.length){ b = "0" + b; } //從低位到高位,依次相加 for(var i=a.length-1;i>=0;i--){ var curA = +a.charAt(i); var curB = +b.charAt(i); var sum = curA + curB + addOne; //逢2進位 if(sum >= 2){ res[i] = sum - 2; addOne = 1; } else{ res[i] = sum; addOne = 0; } } if(addOne > 0){ res.unshift(1); } //一次性拼接 return res.join(""); };