mirror of
https://github.com/TheAlgorithms/JavaScript.git
synced 2025-07-19 18:13:44 +08:00

* chore: Switch to Node 20 + Vitest * chore: migrate to vitest mock functions * chore: code style (switch to prettier) * test: re-enable long-running test Seems the switch to Node 20 and Vitest has vastly improved the code's and / or the test's runtime! see #1193 * chore: code style * chore: fix failing tests * Updated Documentation in README.md * Update contribution guidelines to state usage of Prettier * fix: set prettier printWidth back to 80 * chore: apply updated code style automatically * fix: set prettier line endings to lf again * chore: apply updated code style automatically --------- Co-authored-by: github-actions <${GITHUB_ACTOR}@users.noreply.github.com> Co-authored-by: Lars Müller <34514239+appgurueu@users.noreply.github.com>
22 lines
734 B
JavaScript
22 lines
734 B
JavaScript
/*
|
|
author: vivek9patel
|
|
license: GPL-3.0 or later
|
|
|
|
This script will find number of 1's
|
|
in binary representation of given number
|
|
|
|
*/
|
|
|
|
function BinaryCountSetBits(a) {
|
|
'use strict'
|
|
|
|
// check whether input is an integer, some non-integer number like, 21.1 have non-terminating binary expansions and hence their binary expansion will contain infinite ones, thus the handling of non-integers (including strings,objects etc. as it is meaningless) has been omitted
|
|
|
|
if (!Number.isInteger(a)) throw new TypeError('Argument not an Integer')
|
|
|
|
// convert number into binary representation and return number of set bits in binary representation
|
|
return a.toString(2).split('1').length - 1
|
|
}
|
|
|
|
export { BinaryCountSetBits }
|