JS进制转换

JS进制转换

JS进制转换

在编程中,经常会涉及到各种进制的转换,比如十进制转二进制、八进制、十六进制等。本文将详细介绍在JavaScript中如何进行进制转换,包括十进制转其他进制和其他进制转十进制两个方向。希望通过本文的学习,读者能够熟练掌握这些进制转换的方法。

十进制转其他进制

十进制转二进制

要将十进制数转换为二进制数,最简单的方法是通过不断除2取余的方式进行计算,将余数倒序排列即可。以下是一个示例代码:

function decimalToBinary(decimal) {
    let binary = '';
    while (decimal > 0) {
        binary = (decimal % 2) + binary;
        decimal = Math.floor(decimal / 2);
    }
    return binary;
}

console.log(decimalToBinary(10)); // 输出: 1010

在上面的示例代码中,我们定义了一个decimalToBinary函数,传入一个十进制数decimal,然后通过循环将每次的余数拼接到二进制数binary的最前面,最终得到转换后的二进制数。

十进制转八进制

十进制转八进制的方法与转二进制类似,只需将除数由2换成8即可,以下是一个示例代码:

function decimalToOctal(decimal) {
    let octal = '';
    while (decimal > 0) {
        octal = (decimal % 8) + octal;
        decimal = Math.floor(decimal / 8);
    }
    return octal;
}

console.log(decimalToOctal(20)); // 输出: 24

十进制转十六进制

十进制转十六进制同样是通过不断除16取余的方式进行计算,将余数转换为十六进制表示即可。以下是一个示例代码:

function decimalToHex(decimal) {
    let hex = '';
    while (decimal > 0) {
        let remainder = decimal % 16;
        hex = (remainder < 10 ? remainder : String.fromCharCode(remainder + 55)) + hex;
        decimal = Math.floor(decimal / 16);
    }
    return hex;
}

console.log(decimalToHex(30)); // 输出: 1E

在上面的示例代码中,我们定义了一个decimalToHex函数,将余数小于10的转换为对应的数字,大于等于10的转换为A~F的字母表示。

其他进制转十进制

二进制转十进制

要将二进制数转换为十进制数,只需按照权重相加的方式进行计算即可。以下是一个示例代码:

function binaryToDecimal(binary) {
    let decimal = 0;
    for (let i = 0; i < binary.length; i++) {
        decimal += parseInt(binary[binary.length - 1 - i]) * Math.pow(2, i);
    }
    return decimal;
}

console.log(binaryToDecimal('1010')); // 输出: 10

八进制转十进制

八进制转十进制同样是按照权重相加的方式进行计算,只需将权重设置为8即可。以下是一个示例代码:

function octalToDecimal(octal) {
    let decimal = 0;
    for (let i = 0; i < octal.length; i++) {
        decimal += parseInt(octal[octal.length - 1 - i]) * Math.pow(8, i);
    }
    return decimal;
}

console.log(octalToDecimal('24')); // 输出: 20

十六进制转十进制

十六进制转十进制是通过权重相加的方式进行计算,不同的是需要将A~F的字母表示转换为对应的数字。以下是一个示例代码:

function hexToDecimal(hex) {
    let decimal = 0;
    for (let i = 0; i < hex.length; i++) {
        let value = isNaN(parseInt(hex[i])) ? hex[i].charCodeAt() - 55 : parseInt(hex[i]);
        decimal += value * Math.pow(16, hex.length - 1 - i);
    }
    return decimal;
}

console.log(hexToDecimal('1E')); // 输出: 30

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程