我发现很多资源都讨论了进制转换算法和使用内置的JavaScript函数将十进制转换为二进制或十六进制,但我找不到任何关于如何转换为任何分数基数(例如3/2进制)的资源。Sesquinary数字系统非常有趣,我想能够使用它,但我找不到任何从十进制转换为它的方法。
sesquinary系统如下:1、2、20、21、22、210、211、212、2100、2101等。
我找不到可靠的转换方法。以下是我到目前为止编写的代码:
它适用于小于10的整数进制,但如果我输入一个分数进制,比如3/2,那么我得到的结果将带有小数:
sesquinary系统如下:1、2、20、21、22、210、211、212、2100、2101等。
我找不到可靠的转换方法。以下是我到目前为止编写的代码:
function decimalToBase(number, base) {
let digitArray = [];
let quotient;
let remainder;
for (let i = 0; i < 16; i++) {
quotient = Math.floor(number / base);
remainder = number % base;
digitArray.unshift(remainder);
number = quotient;
if (quotient == 0){
break;
}
}
console.log(digitArray)
}
它适用于小于10的整数进制,但如果我输入一个分数进制,比如3/2,那么我得到的结果将带有小数:
[1, 0.5, 1, 0] // When It should be: [2, 1, 0]
任何帮助都将不胜感激。
%
。 - user5734311n
的数字系统中,数字范围从0...n-1
。例如,基数为4
的数字系统具有数字0、1、2和3
。看起来,在建议的基数为3/2
的sesquinary系统中,允许使用数字2
?什么是逻辑,使得基数为3/2
的系统可以使用数字0、1和2
? - Trentium