# 进制转化
# 十进制转(二、八、十六)进制
//转二进制
function decimalToBinary(num) {
const mod = [];
while (num) {
const m = num % 2;
mod.unshift(m);
num = (num - m) / 2;
}
return mod.join('');
}
//转八进制
function decimalToOctal(num) {
const mod = [];
while (num) {
const m = num % 8;
mod.unshift(m);
num = (num - m) / 8;
}
return mod.join('');
}
//转16进制
function decimalToHexadecimal(num) {
const map = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'A', 'B', 'C', 'D', 'E', 'F'];
const mod = [];
while (num) {
const m = num % 16;
mod.unshift(map[m]);
num = (num - m) / 16;
}
return mod.join('');
}
# 二进制转(八、十、十六)进制
先将二进制转为十进制 再分别转八进制和十六进制
//二进制转八进制
function binaryToOctal(num) {
num = String(num);
let sum = 0;
for (let i = 0; i < num.length; i++) {
sum += Math.pow(2, i);
}
return decimalToOctal(sum);
}
console.log(binaryToOctal(11111111));
//二进制转十六进制
function binaryToHexadecimal(num) {
num = String(num);
let sum = 0;
for (let i = 0; i < num.length; i++) {
sum += Math.pow(2, i);
}
return decimalToHexadecimal(sum);
}
console.log(binaryToHexadecimal(11111111));