При реализации бигнумов на x86, очевидно, самый эффективный выбор для размера цифр - 32 бита.Тем не менее, вам нужна арифметика с удвоенным размером цифр (то есть 32 + 32 = 33, 32 * 32 = 64, 64/32 = 32).К счастью, x86 не только обеспечивает это, но и доступен из переносного C (uint64_t).
Аналогично, в x64 было бы желательно использовать 64-разрядные цифры.Для этого потребуется 128-битная арифметика (то есть 64 + 64 = 65, 64 * 64 = 128, 128/64 = 64).К счастью, x64 обеспечивает это.К сожалению, он не доступен из переносимого C, хотя, очевидно, можно было бы погрузиться в сборку.
Поэтому мой вопрос заключается в том, доступен ли он из непортативного C. Имеют ли какие-либо компиляторы C на x64 доступ к этому, и если да, то чтосинтаксис?
(Обратите внимание, что я говорю не о 128-битных векторах, которые строго рассматриваются как наборы 32 или 64-битных слов без переноса переноса между ними, а о реальных 128-битных целочисленных операциях.)