题解 | #进制转换#
进制转换
https://www.nowcoder.com/practice/8f3df50d2b9043208c5eed283d1d4da6
const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); rl.on('line', function (line) { console.log(parse16To10(line)) }); const numMap = { 0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15 } const multi = (num, pow) => { if (num === 0) { return 1; } let n = 1; for (let i = 0; i < num; i++) { n = n * pow; } return n; } const parse16To10 = str => { let strs = str.slice(2).toLocaleLowerCase().split('').reverse(); let res = 0 const arr = strs.map((item, index) => { return numMap[item] * multi(index, 16) }); res = arr.reduce((res, item) => res + item); return res; }