How to check if a number has same number of set and unset bits in JavaScript

1 Answer

0 votes
function get_bits(n){
    return (n >>> 0).toString(2);
}
 
function check_same_set_and_unset_bits(n) { 
    var set = 0, unset = 0; 
     
    while (n) { 
        if (n & 1) 
            set++; 
        else
            unset++; 
        n = n >> 1; 
    } 
     
    if (set === unset) 
        return true; 
      
    return false; 
} 


var n = 178; 
     
document.write(get_bits(n) + "<br />");
     
if (check_same_set_and_unset_bits(n)) 
    document.write("Yes<br />"); 
else
    document.write("No<br />"); 
         
var n = 179; 
     
document.write(get_bits(n) + "<br />");
     
if (check_same_set_and_unset_bits(n)) 
    document.write("Yes<br />"); 
else
    document.write("No<br />"); 
  
   
  
/*
run:
    
10110010
Yes
10110011
No
     
*/

 



answered Mar 15, 2019 by avibootz

Related questions

1 answer 172 views
1 answer 162 views
1 answer 203 views
1 answer 209 views
1 answer 188 views
...