天天看點

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