x86-64 Большое целочисленное представление?
Как высокопроизводительные собственные большие целочисленные библиотеки в x86-64 представляют большие целые числа в памяти? (или это меняется? Есть ли самый распространенный способ?)
Наивно я думал о том, чтобы хранить их как строки с нулевыми концами чисел в базе 264.
Например, предположим,X
в памяти как:
[8 bytes] Dn
.
.
[8 bytes] D2
[8 bytes] D1
[8 bytes] D0
[8 bytes] 0
Пусть B = 264
затем
X = Dn * Bn + ... + D2 * B2 + D1 * B1 + D0
Пустая строка (то есть 8 байтов нуля) означает ноль.
Это разумный способ? Каковы плюсы и минусы этого пути? Есть ли способ лучше?
Как бы вы справились с подписью? Работает ли дополнение 2 с этим значением переменной длины?
(Нашел это:http://gmplib.org/manual/Integer-Internals.html Что за конечность?)