直接toString
var num = 10;
console.log(num.toString(2));//1010
或者:
var num = 10;
var arr = [];
//count0,count1分别表示转为二进制的0,1个数
var count0 = 0;
var count1 = 0;
while (Math.floor(num / 2) > 0) {
arr.unshift(num % 2);
num = Math.floor(num / 2);
}
arr.unshift(1); //转为二进制数字的最高位一定是1
console.log(arr); //[1, 0, 1, 0]
//bit存放二进制串
var bit = arr.join('');
console.log(bit); //1010
for (let item of bit) {
if (item == '1') {
count1++;
} else {
count0++;
}
}
console.log(count0); //2
console.log(count1); //2
或者:
var num = 10;
var arr = [];
while (true) {
arr.unshift(num % 2);//将余数依次前放数组里
num = parseInt(num / 2);
if (num == 0) {//除数为0时退出循环
break;
}
}
console.log(arr); //[1, 0, 1, 0]
//bit存放二进制串
var bit = arr.join('');
console.log(bit); //1010