💾n.toHex()
to binary / octal / hex format.
JS ⟩ value ⟩ primitive ⟩ number ⟩ functions ⟩ n.toHex()
convert to binary / octal / hex format (string).
replit: num.toHex() (v.2) (require: nested default values)
// ⭐ getter/setter
Object.defineProperties(Number.prototype, {
    // n.binary
    binary: {
        get() { return this.toString(2) },
    },
    // n.octal
    octal: {
        get() { return this.toString(8) },
    },
    // n.hex
    hex: {
        get() { return this.toString(16).toUpperCase() },
    },
});
// ⭐ general function
function formatFunc(pre, base) {
    return function format({
        prefix = false,
        pad = { length: 0, char: '0' },
    } = {}) {
        // ⭐ `pad` might be overridden, better destructure again
        const { length = 0, char = '0' } = pad;
        return (prefix ? pre : '') + 
            this.toString(base).padStart(length, char).toUpperCase();
    }
}
// num.toBinary()
Number.prototype.toBinary = formatFunc('0b', 2);
// num.toOctal()
Number.prototype.toOctal = formatFunc('0o', 8);
// num.toHex()
Number.prototype.toHex = formatFunc('0x', 16);
// export nothing
module.exports = {};💈範例:
(123).binary,    // '1111011'
(123).octal,     // '173'
(123).hex,       // '7B'
// binary
(12).toBinary(),                        // '1100'
(12).toBinary({ prefix: true }),        // '0b1100'
(12).toBinary({ pad: {length: 10} }),   // '0000001100'
(12).toBinary({                         // '0b0000001100'
    prefix: true,
    pad: { length: 10 },
}),
(12).toBinary({                         // '0b______1100'
    prefix: true,
    pad: { length: 10, char: '_' },
}),
// octal
(123).toOctal(),                        // 173
(123).toOctal({prefix: true}),          // 0o173
(123).toOctal({pad: {length: 10}}),     // 0000000173
(123).toOctal({                         // '0o0000000173'
    prefix: true,
    pad: { length: 10 },
}),
(123).toOctal({                         // '0o.......173'
    prefix: true,
    pad: { length: 10, char: '.' },
}),
// hex
(123).toHex(),                        // 7B
(123).toHex({prefix: true}),          // 0x7B
(123).toHex({pad: {length: 10}}),     // 000000007B
(123).toHex({                         // '0x000000007B'
    prefix: true,
    pad: { length: 10 },
}),
(123).toHex({                         // '0x________7B'
    prefix: true,
    pad: { length: 10, char: '_' },
}),Last updated
Was this helpful?