From 0a034b796ba5dca28e85f375d971485f302b242d Mon Sep 17 00:00:00 2001
From: Alexey Onikov <52637988+onicat@users.noreply.github.com>
Date: Tue, 23 Jun 2020 23:53:03 +0300
Subject: [PATCH 1/2] Update countSetBits.js

---
 src/algorithms/math/bits/countSetBits.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/algorithms/math/bits/countSetBits.js b/src/algorithms/math/bits/countSetBits.js
index 6e24eebf26..63839d4e68 100644
--- a/src/algorithms/math/bits/countSetBits.js
+++ b/src/algorithms/math/bits/countSetBits.js
@@ -11,7 +11,7 @@ export default function countSetBits(originalNumber) {
     setBitsCount += number & 1;
 
     // Shift number right by one bit to investigate other bits.
-    number >>= 1;
+    number >>>= 1;
   }
 
   return setBitsCount;

From eb7b70ec89dd0bdf773bb0322e09234648852bc3 Mon Sep 17 00:00:00 2001
From: Alexey Onikov <52637988+onicat@users.noreply.github.com>
Date: Tue, 23 Jun 2020 23:57:32 +0300
Subject: [PATCH 2/2] Update countSetBits.test.js

---
 src/algorithms/math/bits/__test__/countSetBits.test.js | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/algorithms/math/bits/__test__/countSetBits.test.js b/src/algorithms/math/bits/__test__/countSetBits.test.js
index fb29cb0935..f6770ae200 100644
--- a/src/algorithms/math/bits/__test__/countSetBits.test.js
+++ b/src/algorithms/math/bits/__test__/countSetBits.test.js
@@ -11,5 +11,9 @@ describe('countSetBits', () => {
     expect(countSetBits(21)).toBe(3);
     expect(countSetBits(255)).toBe(8);
     expect(countSetBits(1023)).toBe(10);
+    expect(countSetBits(-1)).toBe(32);
+    expect(countSetBits(-21)).toBe(30);
+    expect(countSetBits(-255)).toBe(25);
+    expect(countSetBits(-1023)).toBe(23);
   });
 });