Я пытаюсь реализовать тип BigInt в JavaScript, используя массив целых чисел. На данный момент у каждого есть верхняя граница 256. Я закончил реализацию всех целочисленных операций, но я не могу понять, как преобразовать BigInt в его строковое представление. Конечно, простой способ таков:
BigInt.prototype.toString = function(base) {
var s = '', total = 0, i, conv = [
,,
'01',
'012',
'0123',
'01234',
'012345',
'0123456',
'01234567',
'012345678',
'0123456789',
,
,
,
,
,
'0123456789abcdef'
];
base = base || 10;
for(i = this.bytes.length - 1; i >= 0; i--) {
total += this.bytes[i] * Math.pow(BigInt.ByteMax, this.bytes.length - 1 - i);
}
while(total) {
s = conv[base].charAt(total % base) + s;
total = Math.floor(total / base);
}
return s || '0';
};
Но когда BigInts действительно получит big , я не смогу конвертировать, добавив больше. Как я могу преобразовать массив base-x в массив base-y?