天天看点

js转进制大全

object.toString([radix])

object 转换对象,radix 要转换为的进制

parseInt(object, [radix])

object 必选项,转换对象

radix 可选项,表示 object 的进制,范围为 2 - 36;如果缺少 radix,则以 0x 开头的字符串转换为十六进制,以 0 开头的字符串转换为八进制,其它字符串都转换十进制。

2进制

2进制转16进制

let code = 10111100;
console.log(code.toString(16));      

2进制转10进制

let code = 110;
console.log(parseInt(code, 2));      

2进制转8进制

let code = 10111100;
console.log(code.toString(8));      

8进制

8进制转16进制

let code = 032;
console.log(code.toString(16));      

8进制转10进制

let code = 032;
console.log(code.toString(10));      

8进制转2进制

let code = 032;
console.log(code.toString(2));      

10进制

负10进制转16进制(大写)-------如果不合适可以看工具方法

let code = -58827693;
console.log(code);
code = ~code;
console.log(code);
console.log(code.toString(16).toLocaleUpperCase());      

10进制转16进制 (大写)

let code = 58827693;
console.log(code);
console.log(code.toString(16).toLocaleUpperCase());      

10进制转8进制

let code = 7;
console.log(code.toString(8));      

10进制转2进制

let code = 7;
console.log(code.toString(2));      

16进制

16进制转10进制

let code = 0xAC;
console.log(code.toString(10));
console.log(parseInt(code, 10));      
let code = 0xAC;
console.log(code.toString(8));      
let code = 0xAC;
console.log(code.toString(2));      

工具方法

/**
 * 10进制(负数) 转 16进制
 * @param n(string)
 * @return string
 */
function decToHex(n) {
    return (parseInt(n, 10) >>> 0).toString(16).toLocaleLowerCase()
}
/***
 * 长度不够补0
 * @param src(string)
 * @param n(number)
 */
function strPad(src, n) {
    let len = src.toString().length
    while (len < n) {
        src = "0" + src
        len++
    }
    return src
}

// 测试10进制(负数) 转 16进制
let aCode = -58827693
console.log(decToHex(aCode).toLocaleUpperCase()) // FC7E5C53

// 测试长度不够补0
let bCode = 111
console.log(strPad(bCode, 10)) // 0000000111