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);
   });
 });
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;