最近做了一道题目,讲的是如何进行三进制的计算。通过查API,发现相关的toSting, pareInt有进制转换的功能。
3进制整数转10进制
let a = 12;
let b = parseInt(a, 3);
console.log(b)
10进制转3进制
let c = 5;
let d = c.toString(3)
console.log(d)
那么小数呢,显然这样写是不够健壮的。对于3进制转10进制,可以采用幂求和法,翻译成js的写法:
function ternaryto10(num) {
let str = String(num);
let arr = str.split('.');
let intArr = arr[0].split('');
let intSum = intArr.reduce((count, n, index) => {
return count + parseInt(n) * (3 ** (intArr.length - 1 - index))
}, 0)
let floatArr = (arr[1] || '').spli