Есть ли способ проверить, доступны ли 128-битные целые числа?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Есть ли способ проверить, доступны ли 128-битные целые числа?

Сообщение Anonymous »

Я работаю над математической библиотекой с фиксированной запятой. Общепринятый способ умножения чисел с фиксированной точкой — умножить их на целочисленную переменную, большую, чем то, что вы сохраняете, а затем сдвинуть результат вправо в зависимости от масштабного коэффициента.
Дело в том, что я уже использую для хранения 64-битные целые числа, поэтому для того, чтобы иметь возможность умножать два значения, мне понадобится доступ к 128-битному целому числу. В противном случае мне придется разделить каждое значение на два 32-битных целых числа и умножить их отдельно. (Либо так, либо сделать что-нибудь творческое с std::bitset; я еще не решил.)
Другими словами, мне нужно сделать что-то вроде следующего псевдокод:

Код: Выделить всё

typedef int64_t storage_t;

if (type_exits(int128_t)) {
typedef int128_t math_t;
const bool use_32_bit_algorithm = false;
} else if (type_exists(__int128)) {
typedef __int128 math_t;
const bool use_32_bit_algorithm = false;
} else {
typedef int64_t math_t;
const bool use_32_bit_algorithm = true;
}
Как реализовать type_exists()?

Подробнее здесь: https://stackoverflow.com/questions/791 ... -available
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»