Как сохранить номер с 1000 цифрами в реестре - PullRequest
0 голосов
/ 30 апреля 2019

Я знаю, что это невозможно в одном регистре, но как лучше всего его хранить? Я пытаюсь решить проблему Эйлера 25 в сборке руки. Я закончил часть Фибоначчи, но не могу понять, как продолжать делать это, пока не доберусь до тысячи цифр. Было бы около 4782-го числа Фибоначчи.

Хранение в отдельных регистрах, но для этого потребуется много регистров.

Ссылка на проблему Эйлера: https://projecteuler.net/problem=25

1 Ответ

2 голосов
/ 30 апреля 2019

Число 10<sup>1000</sup> состоит из чуть более 3300 бит.Если ARM не имеет сотен 32-битных регистров, которые вы можете использовать для этого, это будет , а не , что будет сделано в регистрах.

Даже если в действительно было так многорегистры, вероятно, все еще не оптимизированы для того, чтобы рассматривать их как единое целое.

Что вам, вероятно, потребуется сделать, это сохранить эти вещи в памяти (как {sign, numBytes, byteArray[]} структура некоторого описания).Вы можете посмотреть этот мой предыдущий ответ , чтобы увидеть один из способов реализации основных арифметических операций над типами "bignum".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...