Что означает IEEE-754 под «форматами обмена»? - PullRequest
1 голос
/ 18 октября 2019

Стандарт гласит, что они поддерживают обмен данными с плавающей запятой между реализациями. Что подразумевается под «реализациями» здесь? И как этот обмен может произойти?

1 Ответ

2 голосов
/ 18 октября 2019

Стандарт, как и многие стандарты программирования, определяет набор правил. Все, что следует этим правилам, является реализацией стандарта. Согласно реферату IEEE 754-2008: «Реализация системы с плавающей запятой, соответствующей этому стандарту, может быть полностью реализована в программном обеспечении, полностью в аппаратном обеспечении или в любой комбинации программного и аппаратного обеспечения».

Например,теоретически можно разработать компьютерный процессор, который изначально поддерживает форматы с плавающей запятой и который имеет одну инструкцию для каждой операции IEEE 754. Или вы можете написать компилятор C, предназначенный для процессора, который имеет некоторые операции с плавающей запятой, такие как сложение и умножение, но использует программные процедуры для квадратного корня и других операций. Или вы могли бы написать программное обеспечение, которое реализует все операции IEEE 754 с использованием чисто целочисленных операций C, не полагаясь на какое-либо конкретное оборудование. Каждый из них может быть реализацией IEEE 754.

Поведение с плавающей запятой в значительной степени определяется представленными математическими значениями. Для арифметических форматов стандарт определяет, какие числа представлены, каковы результаты выполнения арифметических операций с ними и так далее. Форматы обмена идут дальше, чем это;для форматов обмена стандарт точно определяет, какие битовые шаблоны представляют какие значения.

Из-за этого, если одна реализация IEEE 754 помещает значение в объект с плавающей запятой, а затем передает биты в другую реализацию, возможно, выполняющуюсяна совершенно другом оборудовании, и эта целевая реализация восстанавливает эти биты в объекте с плавающей точкой того же формата обмена, тогда целевой объект будет иметь то же значение и поведение, что и исходный исходный объект. Другими словами, форматы обмена делают данные переносимыми.

Эта передача может происходить по сети, путем сохранения битов на диске, который затем физически перемещается на другой компьютер, путем печати битов (или представленияиз них, например, шестнадцатеричное) на бумаге, которая затем вводится человеком, или другими способами.

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

...