Skip to content

Commit 46d0a04

Browse files
committed
binary Addition
1 parent 75c25e3 commit 46d0a04

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

‎binaryAddition.js‎

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/**
2+
* @param {string} a
3+
* @param {string} b
4+
* @return {string}
5+
*/
6+
var addBinary = function(a, b) {
7+
8+
var maxlength = Math.max(a.length, b.length);
9+
a = a.padStart(maxlength, '0');
10+
b = b.padStart(maxlength, '0');
11+
12+
var n = a.length
13+
var res = "";
14+
var sum = 0;
15+
var carry = 0;
16+
for (var i = n-1; i >= 0; i--) {
17+
var aBit = Number(a[i]);
18+
var bBit = Number(b[i]);
19+
var sum = aBit ^ bBit ^ carry;
20+
carry = (aBit & bBit) ^ (carry & (a[i] ^ b[i]));
21+
res += sum.toString();
22+
}
23+
if (carry == 1)
24+
res += '1';
25+
return res.split("").reverse("").join("");
26+
};

0 commit comments

Comments
 (0)