Каковы приложения/преимущества 80-разрядного типа данных расширенной точности?

Сделайте «double g = 1.0 / 3.0;» вместо этого.

15
задан gnovice 4 March 2009 в 21:25
поделиться

4 ответа

FPUs Intel используют 80-разрядный формат внутренне для получения большей точности для промежуточных результатов.

таким образом, у Вас могут быть 32-разрядные или 64-разрядные переменные, но когда они загружаются в регистры FPU, они преобразовываются в 80 битов; FPU тогда (по умолчанию) выполняет все вычисления в 80, но; после вычисления результат хранится назад в 32-разрядные или 64-разрядные переменные.

BTW - несколько печальное последствие этого - то, что отладка и сборки конечных версий могут привести к немного отличающимся результатам: в сборке конечных версий оптимизатор может сохранить промежуточную переменную в 80-разрядном регистре FPU, в то время как в отладочной сборке, это будет сохранено в 64-разрядной переменной, вызывая потерю точности. Можно избежать этого при помощи 80-разрядных переменных или использовать переключатель FPU (или параметр компилятора) для выполнения всех вычислений в 64 битах.

24
ответ дан 1 December 2019 в 00:54
поделиться

У меня есть друг, который работает в этом. Он работает над библиотекой для обработки плавающих точек размера гигабайтов. Конечно, что-то связанное с научными вычислениями (вычисления с плазмой), и вероятно только этот вид вычислений работ с числами это большое...

0
ответ дан 1 December 2019 в 00:54
поделиться

Википедия объясняет , что 80-разрядный формат может представить все 64-разрядное целое число, не теряя информацию. Таким образом единица с плавающей точкой ЦП может использоваться для реализации умножения и разделения для целых чисел.

5
ответ дан 1 December 2019 в 00:54
поделиться

Если вам действительно требуется неизвестная версия другого пакета, и нет пути сделать это с другими версиями, вы можете просто распространить эту версию пакета с вашей собственной. При необходимости поместите его в собственное пространство имен, чтобы убедиться, что используется версия.

-121--3119916-

Нельзя удалить файл cookie непосредственно на компьютере клиента. При вызове метода Cooki.Remove файл cookie удаляется со стороны сервера. Чтобы удалить файл cookie на стороне клиента, необходимо установить дату истечения срока действия файла cookie на дату прошлого.

HttpCookie cookie = HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName];
if (cookie != null)
{
     cookie.Expires = DateTime.Now.AddDays(-1);
     HttpContext.Current.Response.Cookies.Add(cookie);
}

Надеюсь, вам это поможет.

-121--4905641-

Я использовал 80-битные для некоторых чисто математических исследований. Мне пришлось суммировать слагаемые в бесконечной серии, которая росла довольно крупно, вне диапазона дублей. Конвергенция и точность не были заботой, только способность обрабатывать большие показатели, такие как 1E1000. Возможно, какая-то умная алгебра могла бы упростить вещи, но было намного быстрее и проще просто кодировать алгоритм с расширенной точностью, чем тратить какое-либо время на размышления об этом.

1
ответ дан 1 December 2019 в 00:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: