题解 | #二进制中1的个数#
重点是求得一个数的二进制,我这里是调用的toString()api来返回一个数字的二进制字符
function NumberOf1(n = 0)
{
// write code here
let newN = n < 0? -n:n
// 本身二进制长度
let length = newN.toString().length
// 本身二进制中1的个数
let count = 0
// 将n转化为二进制
let str = newN.toString(2)
for(let i = 0;i < str.length; i++){
if(str.charAt(i) == "1") {
count++
}
}
// 正负数对应不同的逻辑,即是否取反码
if(n < 0){
console.log(count + 32 - str.length)
return count + 32 - str.length
}else{
console.log(count)
return count
}
}
module.exports = {
NumberOf1 : NumberOf1
};